(1)类和对象
类:被class关键字修饰叫做类。理解:图纸。
对象:根据类生产出来制造出来的实例叫做对象。理解:实体。
(2)成员变量
在类中定义的变量叫做成员变量。理解:属性。
(3)成员方法
在类中定义的方法叫做成员方法。理解:功能。
(4)构造方法
方法名和类同名、没有返回值也没有void关键字。
如果一个构造方法都没有、系统默认提供一个无参的构造方法(如果写了则不提供)
(5)创建对象的语法格式
类名 变量 = 当前类的对象(new 构造方法)
父类 变量 = 子类的对象(new 构造方法)
接口 变量 = 实现类的对象(new 构造方法)
(6)编写类的步骤和创建对象的方式
1.创建类
2.编写成员变量
3.生成构造方法(建议:无参、有参)
4.生成getter和setter方法(说明:根据成员变量生产)
5.生成toString方法(说明:测试打印方法)
6.根据类创建对象(说明:调用无参、有参构造方法创建对象)
(7)java语言类型的分类
基本数据类型:8个
类类型/引用类型:其它
(8)基本类型和引用类型区别
基本类型:变量中存储的是真实的值。
引用类型:变量中存储的是对象在内存中的地址的值。
(9)值传递
在调用方法传参的过程中、基本数类型传递的是真实的值、引用类型传递的是地址的值。
(10)成员变量和局部变量的区别
成员变量:在类中定义的作用范围类内部。
局部变量:在方法中定义的作用范围方法内部。
(11)static静态关键字
被static修饰成员属于类叫做类成员、通过【类名.成员】的方式调用
不被static修饰成员属于对象叫做对象成员、通过【对象.成员】的方式调用
(12)抽象类:被abstract修饰的类叫做抽象类。理解:抽象图纸。
成员变量、成员方法、构造方法:定义和具体类一样。
(13)抽象类有有构造方法、但是不能创建对象。
// Father f = new Father();
(14)抽象方法:被abstract抽象关键字修饰、并且没有方法大括号(用分号取代方法体)
(15)包含抽象方法的类一定是抽象类、抽象类不一定包含抽象方法
(16)继承的概念:子类通过extends继承关键字继承父类、父类所有成员子类都继承下来。
(17)具体类和抽象类之间能够相互继承?
具体类 继承 具体类 可以
具体类 继承 抽象类 可以(重点)
抽象类 继承 抽象类 可以
抽象类 继承 具体类 可以
(18)继承的设计原则:
抽象类-父类:负责设计
具体类-子类:负责实现
(19)类的初始化加载顺序
一个类:静态-非静态-构造方法
继承类:父类静态-子类静态-父类非静态-父类构造方法-子类非静态-子类构造方法
(20)如果一个类没有父类、系统会自动让此类默认继承Object类(Java所有类的顶级父类)
(21)父子类型转换:
子类转换父类、向上转型、没问题
父类转换子类、向下转型、需要强制类型
(22)包的定义和导入
定义:package 包名
导入:import 包名.类名
本包的类可以直接使用、外包的类必须导入才能使用。
(23)final关键字
修饰变量、不能更改
修饰方法、不能被重写
修饰类、不能被继承
(24)this关键字和super关键字
this关键字:表示当前类的对象
super关键字:表示父类的引用
(25)可见性修饰符:4个范围3个关键字
private 私有 当前类
默认 当前类 + 本包
protected 保护 当前类 + 本包 + 外包子类
public 公共 所有
(26)接口概念:
被interface修饰叫做接口。理解:表示一个标志和规范。是设计功能的工具。
成员变量特点固定默认:public static final
成员方法特点固定默认:public abstract
构造方法:没有构造方法、不能创建对象。
(27)类和接口的关系:
类通过implements实现关键字实现接口。类和接口的关系就是实现关系。
接口:负责设计
类:负责实现。
(28)Java是面向对象的语言、面向对象语言有3个特征:【封装、继承、多态】
封装:类把相关的变量和方法封装到类内部。可见性修饰符。
继承:父类有的子类都有。
多态(多种形态、2种):类内部多态(重载)、继承中多态(重写)。
重载:在一个类中、多个方法、方法名一样、参数不一样。
重写:在父类和子类中、2个方法、方法名和参数都一样、Java会自动调用子类的方法。
(29)具体类、抽象类、接口三者横向比较
具体类 抽象类 接口
关键字 class abstract class interface
成员变量 都可以 都可以 public static final
成员方法 全部实现 部分实现 public abstract
构造方法 有 有 没有
创建对象 能 不能 不能
意图目的 实现 设计(继承) 设计
(30)Java文件和Java类的关系
一个Java文件可以写多个Java类、但是文件名必须和public修饰的类名一样。