学习目标:
了解 JAVA的面向对象学习内容:
面向过程语言和面向对象语言的区别:
面向过程的语言是将代码封装成一个个方法,来完成代码管理,注重功能的实现
面向对象的语言是将代码封装成类,通过成员方法和成员属性方法来实现代码管理,不注重具体功能的实现
面向对象中的类和对象的关系:
编程语言中的类(class)是一类具有相似属性的抽象描述,而对象是某个类的具体实例。
例如 Dog类,所有的Dog都有两只眼睛,一张嘴巴,四条腿,一身毛,这就可以确定一个 Dog的类
而哈士奇是一个具体的狗的品种,它拥有上面Dog类的所有特征,所以它就是Dog类的一个具体实例
类体的构成
1,类中只有两种类型,一种是成员变量(属性)【类的静态属性】另一种是成员方法(方法)【类的动态属性】
成员方法又可分为构造方法和普通方法,静态方法
2,在有顶层的类中,只可以出现一个用public声明的类,且该类的名称与java的源文件名一样
3,java中的返回值只可返回一个变量(如果想要一次返回多个值,可以使用类似数组的容器)
4,java中的方法不可以嵌套
5,static修饰某个属性或者方法时,不需要创建类对象,直接用类名.属性(方法)就可以调用(在启动程序时,系统自动为该属性或者方法分配内存)
6,成员变量(全局变量)和局部变量的作用域不同(成员变量可以不初始化,系统会自动初始化,局部变量必须初始化)
7,java中类方法的定义,无参和有参
8. 函数重载(java中在同一个类中可以有多个同名函数,他们的参数列表不同【包括参数类型或者参数个数】,这样的函数叫做函数重载,重载与返回值类型无关)
9. 访问修饰符(public:全部都可访问
默认(default): 同一个类和同一个包中可以访问
protected:同一个类和同一个包和子类中可以访问
private四种):同一个类中可以访问
10. 构造方法(主要完成数据的初始化,没有返回值(与 void类型有区别,不可混为一谈),函数名与类名相同,当自己定义完构造函数时,系统将不再提供默认构造函数)
11. static关键字(用static声明的数据,在类加载时,系统自动为其分配存储空间,可用于频繁使用的属性或方法上,可通过 类名.属性(方法名)调用,也可以通过对象调用,在方法内部(局部变量)不可用 static 修饰,用static修饰的方法不可调用非static的方法)
12. 初始化的手段 : 代码块{ }:在类实例化时运行,比构造函数先运行
静态代码块 static {}:在类加载时运行,只运行一次
构造函数 类名(): 在类实例化时运行
13. 常量与不可变量(常量(java中没有常量的概念):用 final static表示 不可变量(用 final表示,只可赋值一次)
14. 面向对象的三个特征(封装,继承,多态)
15. 封装(将成员变量和成员方法抽象成一个类,该类对可信对象可见,对不可信对象隐藏。好处:可以更方便的管理数据,提高数据的安全性)
16. 继承(子类可以获得父类的数据)关键字 extends
17. 多态(java中多态体现在两个方面:由方法重载实现的静态多态性(编译时多态)和方法重写实现的动态多态性(运行时多态))
18. this和super的区别(this指当前类对象的地址,super指的是父类对象的地址)
19. java中是单继承 但接口可以有多个,可以继承多个接口
20. 重写(override)子类继承父类,并修改父类的方法体(构造方法不能被重写,因为构造方法不能被继承)
21. 重载(overload)和重写(override)的区别:重载在同一个类中实现,方法名一样,参数列表不同(类型和个数),与返回值类型无关。重写是子类修改父类的方法,发生在两个类中,参数列表必须一致。
Java中的注释
java中有三种注释(//, /*......*/, /**........**/
// 单行普通注释
/* ......*/ 多行注释
/**.....**/ 多行注释,可以生产API文档
Java中的命名规范。
1.java中包的作用以及命名规范(一般使用小写字母,使用倒置的组织域名来命名 [lang包不需导入,系统自动导入]
2.Java中的变量名;采用 英文,下划线,数字命名,数字不能在第一位,一般首字母小写,从第二个单词开始首字母大写
3.Java类的命名,采用 英文,下划线,数字命名,数字不能在第一位,首字母大写,第二个单词开始首字母大写
3,Java常量的命名:采用 英文,下划线,数字命名,数字不能在第一位,全字母大写,第二个单词开始首字母大写
4,Java中方法的命名:采用 英文,下划线,数字命名,数字不能在第一位,一般首字母小写,从第二个单词开始首字母大写
学习时间:
2021.4.25