面向对象三大特性

封装

  • 该露的露,该藏的藏

    我们程序设计要追求“高内聚,低耦合”。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用。

  • 封装(数据的隐藏)

    通常,应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这成为信息隐藏。

记住这句话就够了:属性私有,get/set

package com.study.oop.demo04;

//类     private:私有
public class Student {

    //私有属性
    private String name;
    private int age;

    //提供一些可以操作这个属性的方法
    //提供一些private的get、set方法

    //get 获取这个数据
    public String getName() {
        return name;
    }

    //set 给这个数据设置值
    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        if(age > 100 || age < 0){
            this.age = 5;
        }else {
            this.age = age;
        }
    }
}


//========================================
package com.study.oop;

import com.study.oop.demo04.Student;

/*
封装的优点:
1.提高程序的安全性,保护数据
2.隐藏代码的实现细节
3.统一接口
4.增加系统可维护性
 */
public class Application {
    public static void main(String[] args) {
        Student student = new Student();
        student.setName("蜡笔小新");
        System.out.println(student.getName());

        student.setAge(8);
        System.out.println(student.getAge());
    }
}

快捷的生成get/set方法:按Alt+Ins
面向对象三大特性_第1张图片
面向对象三大特性_第2张图片

继承

继承的本质是对一批类的抽象,从而实现对现实世界更好的建模

extends的意思是“扩展”。子类是父类的扩展

Java中类只有单继承,没有多继承。

继承是类和类的一种关系。除此之外,类和类之间的关系还有依赖,组合、聚合等。

继承关系的两个类,一个为子类(派生类),一个为父类(基类)。子类继承父类,使用关键字extends来表示。

子类 和父类之间,从意义上讲应该具有“is a”的关系

object类

super

方法重写

package com.study.oop.demo04;

//在Java中,所有的类,都默认直接或间接继承Object类
//人:父类
public class Person {

    //private
    //public
    //protected
    //default
    public int money = 10_0000_0000;

    public void say(){
        System.out.println("能力一:说话");
    }
}

//===============================
package com.study.oop.demo04;

//Child is Person:派生类/子类
//子类继承了父类,就会拥有父类的全部方法
public class Child extends Person{
    //Ctrl+H
}

//===============================
package com.study.oop;

import com.study.oop.demo04.Child;

public class Application {
    public static void main(String[] args) {
        Child child = new Child();
        System.out.println(child.money);
        child.say();
    }
}

快捷键:在类中按Ctrl+H,可查看继承关系
面向对象三大特性_第3张图片

你可能感兴趣的:(java)