OOP
1.类
类是一种自定义的数据类型
类是对象的模板,类可以创建对象,因此,类是对象的抽象
类可以创建对象的对象
2.对象
现实生活中的对象就是万事万物,我们眼睛所看到的每一个物体,脑海里想到的每一个事物都是一个对象
对象有两部分组成:
1.特征
2.行为
3.类的定义格式
public class 类名{
private 数据类型 属性名;(private为修饰符,表示私有的,修饰符还有public,protected以及“默认的”就是什么都不写)
public 类名([参数列表]){
//方法体
}
public 返回值类型 方法名([参数列表]){
//方法体
}
}
4.方法的分类
(1).根据返回值
有返回值的方法和无返回值的方法
(2).根据参数划分
有参数的方法和无参数的方法
5.方法重载
方法重载的条件:
在同一个类中,多个方法同名但是参数类型和数量不同
调用重载的方法:
根据调用方法传递的参数决定用哪个方法
6.参数的传递
分为值传递和对象传递
值传递是把变量a的传给变量b,改变b的值不会影响a的值
参数传递是把变量a的地址传递给变量b,a会随着b改变而改变
7.构造函数
(1).构造函数不能有返回值类型,普通方法必须要有返回值类型
(2)构造函数的函数名必须和类名相同,普通方法的自己定义
(3).系统会默认提供一个构造函数,普通方法必须自己写
(4)构造函数是用来实例化对象(创建对象)和初始化属性,普通方法是执行某一个功能的方法。
(5)每创建一个对象,只会使用一个构造函数,并只执行一次,普通方法可以多次调用。
8.this关键字
this关键字指当前对象,如:
public void setName(String name) {
//加上this的为属性,不加this的为参数
this.name = name;
}
this关键字是用来区分属性和参数
9.创建对象的格式
对象名 =new 构造函数([参数列表]);
对象调用构造函数的格式
对象名.方法名([参数列表]);
继承和接口
1.继承
为什么需要继承
a.增加程序的可重用性。
b.增加程序的扩展性。
继承的格式
要实现继承必须使用extends关键字
public class 子类名 extends 父类名{
}
子类继承到了父类的什么
第一种是不在同一包下:子类可以继承父类公有的属性和公有的方法。
第二种是在同一包下:子类可以继承父类公有的、受保护的以及默认的属性和方法。
方法重写
条件;
a.存在继承关系
b.子类中定义的方法在父类中存在
c.子类的定义方法格式和父类一样
自动转型
要实现自动转型必须满足的条件:
必须存在继承关系
只有存在继承关系的类才可以使用自动转型
因为父类包含了子类。
自动转型的格式:、
父类名 对象名 = new 子类构造函数([参数列表]);
对象名是父类类型的,但是具体的对象却是通过子类的构造函数创建的,那么对象是子类的。对象会先调用子类的方法,子类没有就调用父类的方法。
2.接口
为什么需要接口
接口是用来定义规则(方法)。
便于修改程序,扩展
定义接口的格式:
接口只有公有的属性和方法,但是因为方法是没有具体的实现,所以在使用 的过程中,很少定义属性,一般是定常量。
public interface 接口名{
定义常量的格式:
public static final 数据类型 常量名(常量名最好全部大写) = 值;
定义方法的格式:
public 返回值类型 方法名([参数列表]);
返回值类型 方法名([参数列表]);
}
实现接口的格式
public class 类名 implements 接口名{
//重写接口中定义的所有方法。
}
接口也可以继承接口:
public interface 子接口名 implements 父接口名{
}
接口和类的区别
接口定义的关键字和类定义的关键字不同。
实现接口和继承类的关键字不同
类可以实现多个接口,但是类只能继承一个类(Java中的继承是单继承的)
接口中所有的方法是抽象的定义没有实现,类所有的方法必须要有实现
接口中没有构造函数,类有构造函数
接口不能创建对象,类可以创建对象。
3.抽象类
抽象类是介于接口和类之间的一种类,可以没有实现。
定义抽象类的关键字是abstract class
public abstract class 类名 extends 父类 implements 父接口,...{
定义抽象方法
public abstract 返回值类型 方法名([参数列表]);
}
继承抽象类的关键字是extends
抽象类的实现格式:
public class 子类名 extends 抽象父类名{}
注意: 抽象类不可以直接创建对象
抽象类不必实现所有方法
1.类
类是一种自定义的数据类型
类是对象的模板,类可以创建对象,因此,类是对象的抽象
类可以创建对象的对象
2.对象
现实生活中的对象就是万事万物,我们眼睛所看到的每一个物体,脑海里想到的每一个事物都是一个对象
对象有两部分组成:
1.特征
2.行为
3.类的定义格式
public class 类名{
private 数据类型 属性名;(private为修饰符,表示私有的,修饰符还有public,protected以及“默认的”就是什么都不写)
public 类名([参数列表]){
//方法体
}
public 返回值类型 方法名([参数列表]){
//方法体
}
}
4.方法的分类
(1).根据返回值
有返回值的方法和无返回值的方法
(2).根据参数划分
有参数的方法和无参数的方法
5.方法重载
方法重载的条件:
在同一个类中,多个方法同名但是参数类型和数量不同
调用重载的方法:
根据调用方法传递的参数决定用哪个方法
6.参数的传递
分为值传递和对象传递
值传递是把变量a的传给变量b,改变b的值不会影响a的值
参数传递是把变量a的地址传递给变量b,a会随着b改变而改变
7.构造函数
(1).构造函数不能有返回值类型,普通方法必须要有返回值类型
(2)构造函数的函数名必须和类名相同,普通方法的自己定义
(3).系统会默认提供一个构造函数,普通方法必须自己写
(4)构造函数是用来实例化对象(创建对象)和初始化属性,普通方法是执行某一个功能的方法。
(5)每创建一个对象,只会使用一个构造函数,并只执行一次,普通方法可以多次调用。
8.this关键字
this关键字指当前对象,如:
public void setName(String name) {
//加上this的为属性,不加this的为参数
this.name = name;
}
this关键字是用来区分属性和参数
9.创建对象的格式
对象名 =new 构造函数([参数列表]);
对象调用构造函数的格式
对象名.方法名([参数列表]);
继承和接口
1.继承
为什么需要继承
a.增加程序的可重用性。
b.增加程序的扩展性。
继承的格式
要实现继承必须使用extends关键字
public class 子类名 extends 父类名{
}
子类继承到了父类的什么
第一种是不在同一包下:子类可以继承父类公有的属性和公有的方法。
第二种是在同一包下:子类可以继承父类公有的、受保护的以及默认的属性和方法。
方法重写
条件;
a.存在继承关系
b.子类中定义的方法在父类中存在
c.子类的定义方法格式和父类一样
自动转型
要实现自动转型必须满足的条件:
必须存在继承关系
只有存在继承关系的类才可以使用自动转型
因为父类包含了子类。
自动转型的格式:、
父类名 对象名 = new 子类构造函数([参数列表]);
对象名是父类类型的,但是具体的对象却是通过子类的构造函数创建的,那么对象是子类的。对象会先调用子类的方法,子类没有就调用父类的方法。
2.接口
为什么需要接口
接口是用来定义规则(方法)。
便于修改程序,扩展
定义接口的格式:
接口只有公有的属性和方法,但是因为方法是没有具体的实现,所以在使用 的过程中,很少定义属性,一般是定常量。
public interface 接口名{
定义常量的格式:
public static final 数据类型 常量名(常量名最好全部大写) = 值;
定义方法的格式:
public 返回值类型 方法名([参数列表]);
返回值类型 方法名([参数列表]);
}
实现接口的格式
public class 类名 implements 接口名{
//重写接口中定义的所有方法。
}
接口也可以继承接口:
public interface 子接口名 implements 父接口名{
}
接口和类的区别
接口定义的关键字和类定义的关键字不同。
实现接口和继承类的关键字不同
类可以实现多个接口,但是类只能继承一个类(Java中的继承是单继承的)
接口中所有的方法是抽象的定义没有实现,类所有的方法必须要有实现
接口中没有构造函数,类有构造函数
接口不能创建对象,类可以创建对象。
3.抽象类
抽象类是介于接口和类之间的一种类,可以没有实现。
定义抽象类的关键字是abstract class
public abstract class 类名 extends 父类 implements 父接口,...{
定义抽象方法
public abstract 返回值类型 方法名([参数列表]);
}
继承抽象类的关键字是extends
抽象类的实现格式:
public class 子类名 extends 抽象父类名{}
注意: 抽象类不可以直接创建对象
抽象类不必实现所有方法