什么是面向对象
Java编程语言是面向对象的,用这种语言进行的编程称为面向对象编程(OOP)。
面向对象编程的本质是以类的形式组织代码,以对象的形式组织(封装)数据。
对象:对象是具有状态和行为的类的实例。 例如,狗是一个对象,它的属性有:颜色、名字、品种; 行为有:摇尾巴、吠叫、吃东西等。人也可以是一个物体。 他的属性包括:姓名、身高、年龄; 行为包括:吃饭、学习和工作。
类:类是描述一类对象的行为和属性的模板。
面向对象三大特点:
1. 封装
封装是面向对象的特征之一,是对象和类概念的主要特征。 封装就是将流程和数据包围起来,对数据的访问只能通过指定的方式进行。
在定义对象的特征时,需要决定这些特征的可见性,即哪些特征对外部可见,哪些特征用来表示内部状态。
一般来说,应该禁止直接访问对象中数据的实际表示,而应该通过操作接口来访问,这称为信息隐藏。
信息隐藏是用户对封装的认识,封装为信息隐藏提供支持。
封装保证了模块具有更好的独立性,使程序的维护和修改更加容易。 对应用程序的修改仅限于类的内部,从而最大限度地减少应用程序修改的影响。
封装的优点
Java封装的实现步骤
1、修改属性的可见性,限制对该属性的访问(一般仅限于),例如:
public class Person {
private String name;
private int age;
}
这段代码中,name和age属性被设置为,只能被本类访问,不能被其他类访问,所以信息保持私有。
2.为每个值属性提供外部公共方法访问,即创建一对用于访问私有属性的赋值方法,例如:
public class Person{
private String name;
private int age;
private boolean alive;
public int getAge(){
return age;
}
public void setAge(int age){
this.age = age;
}
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
public boolean isAlive() {
return alive;
}
public void setAlive(boolean alive) {
this.alive = alive;
}
}
this关键字用于解决实例变量(name)和局部变量((name)中的name变量)的同名冲突。
封装还可以提高代码的安全性。 例如,普通的类属性可以直接通过“对象名.属性=xxx”来赋值,无需修改,但是当我们修改属性时,我们不能随意修改。 ,我们还可以在其外部访问方法中进行合法值验证。 例如,上例中的()可以改为:
public void setAge(int age){
if(age > 120)
System.out.println("Age setting error");
else
this.age = age;
}
2. 继承
继承是链接类的层次模型,并允许和支持类的重用,它提供了一种显式表达共性的方法。
新类继承原类后,新类继承了原类的特性。 新类称为原类的派生类(子类),原类称为新类的基类(父类)。
派生类(子类)可以从基类(父类)继承方法和实例变量,派生类(子类)可以修改或添加新的方法,使其更适合特殊需要。 良好的继承性解决了软件的复用性问题。 例如,所有应用程序都有一个窗口,它们可以被视为派生自一个窗口类。 但有些应用程序用于文字处理,有些应用程序用于绘图。 这是因为派生了不同的子类,每个子类添加了不同的功能。
1.什么是继承? 继承有什么好处?
继承是指java允许我们使用关键字来建立一个类与另一个类之间的轴关系
提高代码复用性、键上的代码冗余、增强类的功能可扩展性
2.类继承格式:
类父类{}
类 子类 父类 { }
继承的类型:需要注意的是,Java不支持多重继承,但支持多重继承。
3、继承后子类有什么特点?
子类继承父类,子类可以获取父类的属性和行为,子类可以使用
Java中的子类更强大
4、继承需要满足什么设计规范?
父类中定义了子类相同的特性(公共属性、公共方法)
子类特有的属性和行为应该在子类本身中定义
5、继承有什么特点?
子类可以继承父类的属性和行为,但子类不能继承父类的构造函数
Java是单继承模型:一个人只能继承一个直接父类
Java不支持多重继承,但支持多级继承
Java中的所有类都是类的子类
6、子类方法中访问成员(成员变量、成员方法)满足:
就近原则,如果子类没有找到子类,如果子类没有找到父类,如果父类不存在,就会报错!
7.如果子类和父类中存在同名成员,磁铁必须在子类中使用父类怎么办?
极好的。 父类成员变量/父类成员方法
3、多态性
多态性是指允许不同类的对象响应相同的消息。
多态语言具有灵活性、抽象性、行为共享、代码共享等优点,很好地解决了应用函数的同名问题。
创建初始化对象
对象是使用new关键字创建的
使用new关键字创建时,除了分配内存空间外,还会默认对创建的对象进行初始化,并调用类中的构造函数。
this 关键字 1. this 关键字是什么?
出现在构造函数和成员方法中,代表当前对象的地址
2. this关键字在构造函数和成员方法中可以做什么?
可用于指定对当前对象的成员的访问
这个和超级细节
this:代表类对象的引用; super:表示父类的存储空间的标识符。
关键字访问成员变量 访问成员方法 访问构造函数
这
这。 成员变量访问该类的成员变量
this. (...) 访问该类的成员方法
this(...) 访问此类的构造函数
极好的
super、成员变量访问父类成员变量
super, (...)访问父类成员方法
super(....) 访问父类构造函数