当前位置: 首页 > article >正文

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.父类引用指向子类对象
  • 注意:多态是方法的多态,属性没有多态性。

http://www.kler.cn/a/545378.html

相关文章:

  • python后端调用Deep Seek API
  • Pyqt6 中 QMediaPlayer 音视频播放
  • vs发布后再linux打包linux版本的安装包
  • BIO、NIO 和 AIO 这三者的区别?
  • 磁盘与mysql的故事
  • 【机器学习】监督学习-决策树-CART(Classification and Regression Tree,分类与回归树)详尽版
  • 安卓手游内存call综合工具/内部call/安卓注入call/数据分析(类人猿学院)
  • MySQL | MySQL安装教程
  • Redis过期删除与内存淘汰策略面试题剖析
  • 前端快速生成接口方法
  • 网络安全知识--网络、网络安全产品及密码产品概述
  • 网络安全抑制 缓解 根除 恢复 网络安全如何解决
  • 麒麟操作系统-MySQL5.7.36二进制安装
  • 原生Three.js 和 Cesium.js 案例 。 智慧城市 数字孪生常用功能列表
  • 用 Python 实现 DeepSeek R1 本地化部署
  • 【无标题】前端面试题AI版
  • C# ASP.NET的应用场景
  • 无人机之无线传输技术!
  • 04-微服务02(网关路由、网关鉴权、nacos统一配置管理、自动装配原理、bootstrap.yaml)
  • 【Elasticsearch】Token Graphs