1、JAVA基础复习笔记1、方法:是一段代码结构,可完成特定功能,并可以重复利用。语法格式修饰符 返回值类型 方法名(形式参数列表) 方法体 return 返回值; 方法:就是完成某个功能的代码结构;可以把每次执行的方法放到一个代码块中,每次执行本方法时都调用这个代码块,这个完成方法操作的代码块就叫方法(函数)。抽象(方法中):把做一类的事情的公共步骤进行总结抽取。 语法格式解释:A:修饰符(目前先不管) public static(先记忆)B: 返回值类型 (可以是任何一种数据类型) B1:先判断方法是否有返回值 B2:再判断返回值类型C:方法名称 C1:见名知意(如果英文不会,暂可写拼音) C
2、2:名称要符合标识符规则?D:形式参数 (可以有也可以没有,多个形式参数之间用逗号隔开) D1:形式参数类型:此方法可以接收的参数类型(就是数据类型) D2:形式参数名称:此方法接收的参数名称 (符合变量名称特点) D3: 实际参数:如果传入方法的形式参数值在方法体内被使用就变为实际参数;否则还叫形式参数E:方法体:完成某功能的所有代码F:return 返回值 F1:return可以没有返回值,直接退出方法 F2:return后的返回值类型必须和B中定义的返回值类型一样 Return一旦执行,则方法结束。之后不能再有代码。 如何结束返回值是void的方法,单独写return;方法的编写规则:A
3、:位置:因为main方法直接写在了class内部,所以其它方法也需要写在class内部B:在编写方法前,必须先考虑方法的形式参数和返回值 形式参数:考虑是否需要形式参数,考虑需要几个形式参数,考虑每一个形式参数的数据类型 返回值:考虑是否需要返回值;若有,则考虑返回值类型。 以上A和B的步骤是定义方法的步骤C:分清方法定义和方法执行 光定义方法,而不执行方法,看不到方法返回结果D:方法如何执行(如何使用方法)? 可以在别的方法内部调用定义好的方法,用以执行E: 方法如何调用? 语法:以:“类名.”的形式调用,在本类的方法中调用可省略(类名.) 方法名称(形式参数1的值,形式参数2的值,.) 注
4、意:1这里的形式参数个数必须和定义方法的形式参数个数一致 2每个形式参数的值类型必须和方法定义时对应的形式参数的类型一致 3在方法调用时不用再指明形式参数类型 F:在调用方法时,是否需要处理方法的返回值? 如果方法有返回值,并且需要在调用它的方法内部进行相关其它处理则需要接收被调用方法的返回值例题:任意两个整数,求最大值并且输出或者判等?了解栈结构的说明?先进后出。故应该先写main方法,后写调用方法。使用方法的注意事项1、方法编写在class内部,与其它方法平级(不能把方法定义写在其它方法内部) 2、编写方法前需要考虑方法二要素: 形式参数:是否需要有形式参数;需要形式参数个数;每个形式参数
5、的数据类型 返回值:是否有返回值;返回值类型3、调用方法必须在别的方法内调用 调用语法:方法名(形式参数值);(调用方法时不需要写每个形式参数的数据类型) 4、编写方法时是可以没有返回值的,在返回值类型位置写void (方法没有返回值,并不说明在方法体内不能使用return) return代表的仅仅是跳出方法5、要区分方法定义和方法执行(方法是不调用不执行)Java中常用内存说明:(记忆)1、栈内存:(重点)(开辟空间的方式符合栈结构) 局部变量 为某个方法开辟执行空间2、堆内存 (重点) 使用new出来的东西都放到堆内存3、方法区 (次重点) 1 class文件的描述信息 2 static内
6、部成员 3 class文件中方法的描述信息 4 常量池4、本地方法区 java程序调用的本地资源(了解、JNI)5、寄存器 CPU内部(了解)数据结构:在计算机内部,数据和数据之间的关系叫数据结构。数据结构通过研究人员总结:常见的数据结构有 : 线性结构 栈结构(重点) 队列结构(重点) 树结构(重点) 图结构?基本类型做方法参数传递的是变量值,和方法的形式参数名称没有任何关系。例题07递归:就是方法调用自己,调用自己是指在方法体内部去调用自己。递归二要素:A:递归必须有出口B:要找出每次调用自身的规律性 例题:1到10的加法。Num=n+add(n-1) n=1 时是出口方法重载:在一个cl
7、ass中,具有相同的方法名,具有类似功能的所有方法之间叫方法重载。 优点:程序员只需记忆一个方法名即可。代码美观。 方法重载特点:(即什么时候会发生重载) A:方法重载必须是在一个class内部。(同一个类中、方法名相同、参数列表不同(类型、个数、顺序)、与返回值类型无关、与方法的修饰符列表无关) B:重载的方法之间形式参数个数不同。 C:形式参数的对应位置的数据类型不同。例:System.out.println(.);println方法是一个典型的方法重载因为它可以输出任意类型的值,在定义方法时就必须可以接收任意类型,肯定使用了方法重载方法重载判定注意事项:A:方法重载的判定和方法返回值无关
8、B:方法重载的判定和方法修饰符无关C:方法重载和形式参数的名字没关系,只和对应位置的形式参数类型有关文档注释: 文档注释是为了让别人能方便的使用自己写的代码。类似于电视机的使用说明书 文档注释和普通注释区别,文档注释并不是为了解释具体代码。 文档注释语法规则: A:以杠星星开始,星杠结束 B:在A中写的每一行注释之前都必须加星号 C:在类注释和方法注释中都可以用符号来使用java文档注释定义好的词,来指明特定含义 在让别人使用自己编写的程序时,并不是把编写的.java文件给别人只是把.java文件编译好的.class文件和使用文档注释生成的使用说明书给调用者如何依据.java文件编写针对此ja
9、va文件的使用说明书?A:编写对应的java文件B:在java文件中写好文档注释C:先把java文件编译为class文件D:使用javadoc命令创建帮助文档javadoc -d 目录名称 -version -author java文件名称.java-d:表明需要创建一个目录目录名称:为了把生成的所有帮助文档都放到指定的目录下-version:需要在创建的帮助文档中显示版本号-author:在帮助文档中显示作者 类注释 这个类是主要为了完成两个数求和 还会把这个类中的特殊方法具体指明 还会把这个类中某个方法的特殊调用方式具体指明 version 1.0 author sgx三:面向对象1、面向
10、对象思想 A:面向过程和面向对象区别 面向过程:强调做事情的步骤,每一步之间都有一定的因果关系 面向对象:强调做事情所涉及到的事物,以及事物之间的关系。 方法中的方法体是面向过程的,又因为一个类是对某类事物的特征和行为的抽象,行为以方法 的形式体现,所以面向对象又是基于面向过程的。 B:类定义:类是对一类事物的特征以及与其相关的行为的抽象集合。 对象定义:对象是类的一个具体实现。 类是一个抽象的概念,没法在实际中使用,只有具体化的对象才能够在实际编程中使用。解题步骤:A:找对象(找名词):先要把待解决事情范围内的名词找到 B:再分析关系 根据事情的实际需要,开始分析每一个名词之间的关系(即对象
11、之间的关系)类与对象的关系: 类是一类事物的特征以及其相关的行为的抽象集合。 对象是类的某一个具体化事物。 由对象到类是抽象的过程。 由类到对象是具体化(实例化)的过程。 C:java语言中如果定义一个类? C1:定义一个类名称(见名知意) C2:确定特征(属性) C3:确定行为 D:java语言中如何创建类的一个对象? 语法定义: 类名称 对象名称 = new 类名称(); E: 如何去访问一个类中的属性(特征)? 语法定义: 对象名称.属性名称 = 赋值; 在堆内存中,每个对象都占用一份独立的内存空间。 F: 如何去访问一个类中的行为(方法)? 语法定义: 对象名称.方法名称();那么类的
12、特征和行为在java语言中是如何表示的?(记忆)A:在java程序中是使用类的概念来对应一类事物 在以基础班的学生为一类的例子中,一类事物是学生,所以在java中会定义一个学生类B:在java程序中是使用n个变量来对应一类事物的n个特征 在以上例子中学生会有姓名 年龄 性别 学号四个特征,所以在 java程序中会使用四个变量来表示。C:在java程序中是使用m个方法来对应一类事物的m个行为 以上例子中学生会有学习 睡觉 吃饭 喝水四个行为,所以在java程序中会使用四个方法 分别对应这四个行为 public void 方法名称() 暂时先把static 去掉一般某个对象的特征是静态的、外在的;
13、一般某个对象的行为是动态的、内在的 =号总结:A:用于基本数据类型,比较两数的值是否相等 B:用于引用数据类型:比较两个数据的内存地址是否一致(比较是否指向同一块内存地址)。 成员变量:在类的内部,类中方法外部定义的变量叫成员变量 成员方法:在类内部,和成员变量同级的方法叫成员方法 成员两个字是说明成员变量和成员方法都是所在类的成员 局部变量:在任何方法内部定义的变量叫局部变量成员变量和局部变量的区别:A:在类中编码位置不同:成员变量 类中、方法外 局部变量 方法中B:作用域不同: 成员变量 整个类中都起作用 局部变量 只在方法中C:内存中位置不同: 成员变量 堆内存 局部变量 栈内存D:所属
14、不同(生命周期不同):成员变量 随着对象的创建而存在 局部变量 随着方法执行而存在E:初始化值区别:成员变量 有默认的初始化值 String null byte shor int long 0 float double 0.0 boolean false char u0000 引用类型 null 局部变量 必须在第一次使用前被显示初始化 成员变量和局部变量如果同名: 如果发生同名,则就会成员变量和局部变量的作用域范围重叠,那么此时在局部变量所 在的方法中输出的是局部变量的值。原因:在java中一般为就近原则。匿名对象:没有对象名称的对象 没有对象变量名称 没有对象变量的数据类型 只有new创建
15、对象,而不指明赋值给什么变量。 类名称做方法参数 ?类名称做方法参数实际上是需要这个类的一个对象做方法参数。 类名称做返回值类型:实际上是需要类的一个对象做参数。 引用类型做方法的形式参数: 引用类型做方法的形式参数传递的是地址值 类名做成员变量需要的是这个类的一个对象赋值。封装的概述:封装: class Student private String name; private int sex; private int age; public void setAge(int age) this.age = age; public int getAge() return age; /必须补全针对
16、name、sex的setter、getter方法 private: A:权限修饰符 B:可以修饰成员变量、成员方法 C:被它修饰的成员只能在本类内被访问封装:就是该给你用给你用,不该给你用的全不给你用。使用private控制成员变量或者成员方法的访问权限,被private所修饰的成员变量或者成员方法只能被本类中的成员方法访问。封装的定义:把自己的信息全部私有化,并同时对外提供一个公有的访问方法 如果把类中的某个成员变量定义为了private,就必须对应写两个public的方法:setter方法 用于在其它类中赋值例如:针对private的成员变量age,对外提供一个访问方法方法名称固定:set
17、+成员变量的首字母大写, 因为set方法都是赋值作用,所以必须有形式参数getter方法 用于在其它类中取值 针对age的取值再对外提供一个公有的访问方法方法名称固定:get+成员变量首字母大写,有返回值,return age;封装总结:在编写类时,通常是把所有的成员变量都定义为private;并同时为每一个对应的写好setter和getter方法例如:class Student private String name; private int age; public void setName(String xx) name = xx; public String getName() retu
18、rn name; public void setAge(int yy) age = yy; public int getAge() return age; 封装的设计原则:把该私有化(private)的都私有化,并对外提供访问接口。封装的优点:A:安全性B:复用性C:包装细节,对外提供方法:例如、 USB接口private:A:叫做访问修饰符B:修饰成员变量 、成员方法C:只能本类访问、this 指向本对象:类中的每一个非静态成员方法内部都有一个指向本对象的this. class T int a = 2; public void show() int a = 4; System.out.pri
19、ntln(a=+a);/4就近原则 System.out.println(a=+this.a); this总结: A:使用this.成员变量名称 可以引用本类的成员变量 B:使用this.成员方法名称() 引用本类内的成员方法(一般情况this不写) C: 使用this(形式参数值.) 在某个构造方法中调用别的构造方法一个类在目前讲解过的成员:A:成员变量 有默认值B:成员方法 在成员方法内部可以调用成员变量 在成员方法内部可以调用别的成员方法 在成员方法内部不可以调用任何的自身构造方法C:构造方法 在构造方法内部可以调用成员变量 在构造方法内部可以调用本类的其它构造方法 在构造方法内部可以调
20、用本类的成员方法8、构造方法:一个类本身就是有构造方法的。构造方法主要作用是为成员变量赋值。构造方法:A:如果在编写类时没有显示编写构造方法,则在编译为class之前会自动生成一个构造方法。B:自动生成的方法没有形式参数C:编写构造方法语法 修饰符 把类名称作为方法名称() D:只要自定义了构造方法,java语言就不会再创建默认的构造方法了 注意:在自定义构造方法时,必须写一个不带参数的构造方法调用构造方法:A:语法this(形式参数值.);B: 必须写第一行构造方法的重载,为了给成员变量name和age赋初始化值 4被重载static关键字:(国籍)static特点:A:static修饰的成
21、员是随着类的加载而创建,在创建类的对象之前就存在 B:static修饰的成员是被所有此类的对象所共享修饰成员方法:静态成员方法通常的调用语法是类名称.静态方法名称();静态成员方法和普通成员方法区别:A:普通的成员方法 (可以非静态,也可以静态) 可以调用普通的成员变量; 可以调用静态的成员变量 可以调用普通的成员方法; 可以调用静态的成员方法B:静态的成员方法 (只能静态,不能非静态) 不能调用普通的成员变量 可以调用静态的成员变量 不能调用普通的成员方法 可以调用静态的成员方法为什么静态成员方法只能调用静态?因为静态成员方法内部没有this,它是属于类(不是属于对象的).静态成员变量和普通
22、成员变量区别:A:内存位置不同 静态成员变量是在方法区的静态描述区 普通成员变量是在堆内存(每个对象内)B:所属不同 静态成员变量是属于类的 普通成员变量是属于对象的C:生命周期不同 静态成员变量是随着类的加载而创建 普通成员变量是随着对象的创建而创建D:调用方式不同 静态成员变量是属于类的 可以使用类名称.静态成员变量的名称 来调用 普通成员变量是属于对象的 使用对象名称.成员变量名称 来调用static静态总结:A:只要静态,就是类 只要非静态,就是对象B:只要静态,调用就需类,不要对象 只要非静态,就必须对象C:静态成员就是对象共享D:静态方法没有thisE:静态只能访问静态 非静态可以
23、静态,也可以非静态代码块:就是使用大括号括起来的代码. .代码块分类:1、静态代码块2、同步代码块(线程的同步控制)3、构造代码块4、局部代码块(了解):作用:进一步限定变量的作用范围目前一个类中可能有的成员:1、成员变量2、构造方法3、成员方法4、静态成员变量5、静态成员方法6、静态代码块7、构造代码块8、同步代码块9、局部代码块10、this11、super12、final基本结构 成员变量 是事物的静态特征 实际上就是变量,必须有变量三要素(初始化值可以有默认值) 成员方法 是事物的内在行为 实际上就是方法,必须注意方法二要素(形式参数、返回值类型) 成员方法的重载 方法重载只发生在一个
24、类内部,名称相同,可以通过形式参数的个数不同或者形式参数对应位置的类型不同来判断 构造方法 在创建对象的过程中被执行 目的是为对象的成员变量赋值 语法是和方法类似,没有返回值类型(就不会在方法内写return) 构造方法是可以被重载的 构造方法可以调用构造方法 语法this(形式参数值.); 静态成员变量 语法使用static修饰 被类的所有对象共用 它是属于类的,随着类的加载而创建 静态成员方法 语法使用static修饰 类名称.静态方法名称 属于类的,随着类的加载而创建(不用创建对象,直接调用) 静态成员方法有重载吗?可以代码块 静态代码块 在类的内部,和成员变量同级 static. 同步
25、代码块 构造代码块 在类的内部,和成员变量同级 . 局部代码块 在方法内部,和局部变量同级 . 静态代码块 构造代码块 构造方法 各自的执行时机、执行顺序? 静态代码块:随着类的加载而执行,并且只执行一次 构造代码块:随着对象的创建而执行,每次创建对象都执行一次 构造方法:同构造代码块 执行顺序:静态代码块构造代码块构造方法关键字 this 指代本对象 this的使用时机: 访问成员变量 this.成员变量名称 成员方法或者构造方法访问成员变量 访问成员方法 this.成员方法名称(); 一般this省略 成员方法访问成员方法 访问构造方法 this(形式参数值.); 构造方法访问构造方法 继
26、承:多个类中有共同的特征和行为,可以把这些特征和行为抽取到一个类中,并使用关键字extends让这多个类和抽取后的共有类产生关系,多个类一般称为子类,共有类一般称为父类(基类) 语法 class Fu 继承的特点:A:java语言中的类之间的继承只能是单继承 一个类只能继承唯一的一个类 B:java语言中的类之间是可以有继承体系的 (先考虑类之间相互调用,最后才考虑继承体系) /子类Zi继承父类Fu class Zi extends Fu 继承特点: 1、在java语言中,一个类只能有一个父类 2、java语言中是支持继承体系 体系: class FuFu继承关系对子类成员变量的影响:A:如果
27、子类本身没有,父类有,则找父类的B:如果子类本身有,父类有,则找自己的C:如果子类本身没有,父类也没有,则报错误D: 先自己,后长辈 class Fu extends FuFu /子类Zi继承父类Fu class Zi extends Fu 继承的注意事项: 子类不能继承父类的私有成员继承对子类成员方法的影响:A: 如果子类没有,父类有,调用父类的B:如果子类有,父类有,同名方法,则调用子类的 class Fu private int j=10; public void show() syso(j=+j);继承对于子类构造方法的影响A:在创建子类对象执行子类构造方法前,必须先执行父类的无参构造
28、方法。 无论是调用子类的无参还是带参的构造方法, 都默认会调用父类的无参构造方法B:如何从子类构造方法中调用父类的带参构造方法 语法格式 super(形式参数值.);C: 如果在子类构造方法中使用super关键字指明了调用父类的哪个构造方法 则就不会再去调用默认的父类无参的构造方法了D:super和this调用构造方法的语句在子类的一个构造方法内都必须放第一行 在子类的同一个构造方法内,super和this不可能同时出现 class Zi extends Fu public void show1() show(); public class T public static void main(
29、String args) Zi zz = new Zi(); zz.show1(); 子类只能使用父类的构造方法,不能继承父类的构造方法 super的使用: super指代父类(指向父类成员所在内存区域) 通常用于从子类中去调用父类成员 调用父类成员变量:super.成员变量名称 super.成员变量名称 this.成员变量名称 局部成员变量名称 调用父类成员方法:super.成员方法名称 调用父类构造方法:super(形式参数值); 如果在子类构造方法中去调用父类的构造方法,则必须写在第一行,并且如果已经写了super 调用父类构造方法,就不能再使用this调用本类的别的构造方法了 方法重写(覆盖): 在子类中方法的方法名称和方法形式参数都和父类某个方法一样,在方法体内编写子类特有的功能 如何去重写父类方法? 除了修饰符之外,要和父类方法一致 注意事项: 子类中重写方法的访问权限必须大于等于父类的被重写方法 子类中不能重写父类中私有的方法在创建对象过程中静
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1