Java面向对象二:三大特性
封装
- 我们程序设计要追求“高内聚,低耦合”。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用。
- 将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。
- 只能通过规定的方法访问数据。
- 隐藏类的实例细节,方便修改和实现。
- 属性私有,通过get/set方法
代码演示:
public class Student {
private String name;//私有属性
private int age;//私有属性
private char sex;//私有属性
private int id;//私有属性
//提供一些可以操作这个属性的方法!
//public get/set方法
public String getName() {//get获得数据
return name;
}
public void setName(String name) {//set设置数据
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
if (age<100){
this.age = age;
}else {
this.age = 0;
}
}
public char getSex() {
return sex;
}
public void setSex(char sex) {
this.sex = sex;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public static void main(String[] args) {
Student student = new Student();
student.setName("嘵奇");
student.setAge(28);
student.setId(170802);
student.setSex('男');
System.out.println(student.getSex());
System.out.println(student.getAge());
System.out.println(student.getId());
System.out.println(student.getName());
}
}
this关键字:
1.this关键字代表当前对象
this.属性 操作当前对象的属性
this.方法 调用当前对象的方法。
2.当get和set函数参数名和成员函数名重合的时候,可以使用this区别。
封装的好处:
1.提高程序的安全性,保护数据
2.隐藏代码的实现细节
3.统一接口
4.系统可维护增加了
继承
- 继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模。
- extends的意思是“扩展”。子类是父类的扩展。
- Java中类只有单继承,没有多继承!
- 继承是类和类之间的一种关系。除此之外,类和类之间的关系还有依赖、组合、聚合等。
- 继承关系的两个类,一个为子类(派生类);一个为父类(基类)。子类继承父类,使用关键字extends来表示。Java中所有的类都默认直接或间接继承Object,子类可以继承父类的属性和方法。
- 子类和父类之间,从意义上讲应该具有"is a"的关系.
代码演示:
public class Person1{
public int money = 10_0000_0000;//Person1的属性
public void say(){ //Person1的方法
System.out.println("你好");
}
}
public class Person2 extends Person1 {//Person2继承Person1
public static void main(String[] args) {
Person1 person1 = new Person1();//实例化对象
System.out.println(person1.money);//继承Person1的属性
person1.say();//继承Person1的方法
}
}
多态
- 即同一方法可以根据发送对象的不同而采用多种不同的行为方式。
- 一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多
- 多态存在的条件
1.有继承关系
2.子类重写父类方法
3.父类引用指向子类对象 - 注意:多态是方法的多态,属性没有多态性。