上册:java面相对象语法,理论性为主:
1、对象:就是“东西”,世界万物都是对象;(对象因关注而产生)
2、类:将对象中,具有相同属性和行为的对象集合在一起;(类是用来定义的<>就是个模版,模具;)(抽类)
3、方法:类中对象共有的行为;(比如:人类,都要吃饭,走路)(动作,能做什么)
3.1、方法组成:修饰符,返回值,方法名,参数,方法体;
3.2、抽象方法:无方法体的方法(必须由abstract修饰)(然后,类也必须由abstract修饰)
3.3、构造方法:
3.3.1、写:不再默认调用构造,必须符合签名;
3.3.2、不写:声明类(比如写好的Student类)(调用对象,声明一个对象new Student(),默认调用了构造方法)
4、属性:类中对象共有的属性,本身共有的属性;(比如人类共有姓名、年龄)(名词,固有的)(全局变量)
5、成员变量:对象的属性;
5.1、实例变量:无static修饰:属于对象,一个对象独有一份;(能实例化)
5.2、静态变量:static修饰:属于类,所以对象公用一份 static int a ;(不能实例化)
5.2.1、Student stu1 = new Student(); 如果 a = 3;
Student stu2 = new Student(); stu2中 a也等于3;
Student stu3 = new Student(); 如果stu3.a = 4; 那么以上a 都=4;
建议:用类名来访访问;
6、类名:首字母大写,符合驼峰命名:
7、方法签名:方法名、参数;无参,有参;
8、方法的返回:void无返回(建议写return;);有返回值(可为:8种基本类型和引用类型,必须return;);
9、方法的调用:
10、this:谁调用,指的是谁;
10.1、this.成员变量:访问成员变量
10.2、this.方法():访问方法
10.3、this( ):调用构造方法
11、访问修饰符:
11.1、public:公共的,外部使用者可以任意调用
11.2、private:私有的,本类可用(变量属性一般为private)
11.3、不写:默认,本类可用,同包类可用
11.4、protected:受保护的,本类可用,子类可用,同包类可用
12、构造方法:
12.1、目的:对成员变量进行初始化;
12.2、书写:没有返回类型,与类型相同;
12.3、调用:创建对象的时候自动调用;
12.4、若不写,这默认给一个无参构造;若写了构造,则不给无参构造;
13、方法重载:方法名相同,参数类型不同(包括属性)(发生在编译时java-.class过程)
14、面相对象三大特点:1.封装2.继承3.多态;
15、封装:使用访问修饰符进行封装;
16、继承:减少重复代码,父子类关系
16.1、通过使用extends关键词继承;
16.2、父类中包括子类中所有公有的属性和方法;
16.3、子类中包括父类所以的数据;
16.4、只能继承一个父类,但是能够实现多个接口;
16.5、继承具有传递性质(祖宗十八代关系,直系!);
16.6、子类的构造:先构造
16.6.1、super();不写默认;写:必须写到第一排
16.7、Person stu = new Student();(父类引用指向子类的对象)
16.7.1、stu.只能点出Person类中的属性(成员变量)和方法;
17、方法重写:重写父类的方法;具有继承或者实现关系
17.1、重写父类方法,要求签名相同;同16.7.1、stu.能够点出的是子类的方法;(重写发生在运行时(jvm加载.class并运行的过程),看对象)
18、静态:静态成员变量(静态变量)、静态方法、静态代码块
18.1、静态变量:属于类,所有方法公用;
18.2、静态方法、非静态方法
18.2.1、静态方法:只能直接访问静态变量(一般用在不需要使用实例变量的地方)
18.2.2、非静态方法:可以直接方法静态变量以及实例变量;(隐式this)
18.3、静态代码块(块):一般用于加载静态资源(图片、音频、视频)
18.3.1 使用:static{//程序开始先加载,只加载一次
}
19、final:最终的;
19.1、常量:static final PI = 3,14 ;可类名点出,值不可变,属于类,所以对象共有一个PI;
20、抽象方法:abstract修饰的方法(无方法体);
20.1、抽象类:拥有抽象方法的类:此类需要用abstract修饰
20.2、抽象类必须被继承;
20.2.1、子类也要写成抽象类
20.3、抽象方法需要在子类中重写;(不重写报错)
21、接口:就是一个标准,一个规范(比如USB接口,这个就是一个标准,都做成这样)
21.1、定义:由interface定义(类由class定义)
21.2、接口:就是一个特殊的抽象方法
21.3、组成:常量和抽象方法(不能实例化)
21.4、使用:接口被实现(implements)(继承是extends),一个类可实现多个接口,用“,”分割;
21.5、接口中方法需要重写
21.6、继承和实现,先继承再实现
22、多态:向上造型
22.1、意义:父类的引用可以指向子类的对象;虚方法调用;(认知跟多的类型)
Person person = new Student();
22.2、强制转型:Student student = new Student();
student = (Student)person;//有实现或者继承关系,一般添加异常处理
22.3、判断是否有继承或者实现关系:instanceof;
22.4、异常处理,try.....catch
23、内部类:定义在类的内部(当某个类只被一个类内部使用,可定义内部类,对外是不可见的)
23.1、内部类:Inner,外部类:Outer;Inner可直接调用Outer方法和成员(包括private)
23.2、匿名内部类:只需创建一个对象,之后就没有意义了..........
24、内存管理:JVM管理
24.1、垃圾回收:JVM自带,回收没有任何没有引用指向的对象;
24.1.1、null标记:建议引用不用之后设置为null,以便被GC回收;
24.1.2、可使用System.gc();提醒赶紧回收(具体回收时间不能确定,无法控制)
24.1、内存:堆、栈、方法
24.1.1、堆:保存new出来的对象,包括成员变量
24.1.2、栈:保存所有局部变量
24.1.3、方法区:装的是.class;类的各种信息(包括方法)保存在方法区中;
24.2、内存泄漏:不在使用的对象,未被及时回收,太多之后会出现内存泄漏:
24.2.1、建议:对象不被使用之后及时标记为null;
25、包:文件夹:用来装类的
25.1、公司:com.公司名.工程名(前三层不变).bean(放类)/test(放测试方法)
25.2组织:org.
25.3导包:编译后,类的全称是带了包名的(省略后必须导包);