Java面向对象编程
Java的核心就是OOP(面向对象)
4、面向对象的三大特性(重点)
封装
-
该露的露,该藏的藏:
- 我们程序设定要追求高内聚,多耦合。
- 高内聚:累的内部数据操作细节自己完成,不允许外部干涉;
- 多耦合:仅暴露少量的方法给外部使用。
-
封装(数据的隐藏)
- 通常应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为信息隐藏。
-
记住一句话:属性私有,get/set
-
下面进行简单的操作:
package com.oop.demo04; public class Student { /* 封装: 1.提高程序的安全性,保护数据 2.隐藏代码的实现细节 3.统一接口 4.增加系统可维护性 */ //private属性私有,不能直接被使用 private String name;//名字 private int age;//学号 private char sex;//性别 //提供一些可以操作这个属性的方法! //提供一些public 的get、set方法 //get 获得这个数据 public String getName(){ return this.name; } //set 给这个数据设置值 public void setName(String name){ this.name = name; } public int getAge(){ return this.age; } //给年龄设置一个范围 public void setAge(int num){ if (age>150||age<0){ this.age = 3; }else { this.age = num; } } public char getSex(){ return this.sex; } public void setSex(char sex){ this.sex = sex; } }
public class Application { public static void main(String[] args) { Student s1 = new Student(); s1.setName("小明"); System.out.println(s1.getName()); s1.setNum(999); System.out.println(s1.getNum()); } }
继承
-
继承的本质是对某一批类的抽象,从而实现对世界更好的建模。
-
extends的意思是"拓展"。子类是父类的拓展。
-
JAVA中类只有单继承,没有多继承!
-
继承是类和类之间的一种关系。除此之外,类和类之间的关系还有依赖、组合、聚合等。
-
继承关系的两个类,一个为子类(派生类),一个为父类(基类)。子类继承父类,使用关键字extends来表示。
-
子类(派生类)和父类(基类)之间,从意义上讲应该具有**“子类 is 父类”**的关系。
-
下面进行特殊的操作:
- 设置一个父类(基类)Father、两个子类Son和Dau
- 父亲拥有10个亿(私有的private)
- 这时候子类不能直接使用父类的10个亿
- 这时候需要get/set
package com.oop.demo05; //在JAVA中,所有的类都默认直接或者间接继承object //Father:父类/基类 public class Father/*extends object*/ { //private私有的,不能直接被使用,必须get/set private int money = 10_0000_0000; //获取这个数据 public int getMoney(){ return money; } //给这个数据设置值 public void setMoney(int money){ this.money = money; } }
- 然后子类通过extends继承父类
package com.oop.demo05; //son:派生类/子类 //子类继承了父类,就会拥有父亲的全部方法! //son is father public class Son extends Father { }
- 然后可以直接通过子类调用父类的方法
public class Application { public static void main(String[] args) { //使用new关键字,调用构造器 Son son = new Son(); son.getMoney();//获得这个数据 son.setMoney(5000);//设置这个数据 System.out.println(son.getMoney());//输出5000 } }
- 一般情况下父类要给子类调用方法会用public
拓展
object类
- object类:在JAVA中,所有的类都默认直接或者间接继承object
super 详解
下面先进行几个简单的操作:
- 操作一:super 出现在子类的方法(有参)
- 父类
package com.oop.demo06;
public class Father {