-
封装、继承
封装、继承
一、封装
1、理解封装
- 程序设计追求“高内聚,低耦合”。高内聚:类的内部数据操作细节自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用
- 信息隐藏:禁止直接访问一个对象中数据的实际表示,应通过操作接口来访问
- 属性私有:get/set
例:
(1).对Student类的一些属性进行封装(属性私有)
public class Student {
//封装一般是对属性的
private String name;//名字
private int id;//学号
private char sex;//性别
}
(2).我们对Student类的属性进行封装之后,在main方法里就不可以直接这样调用了
(3).所以要提供一些可以操作这些属性的方法 即 提供一些public的 get/set 方法
public class Student {
private String name;//名字
private int id;//学号
private char sex;//性别
//get 获得这个数据
public String getName(){
return this.name;
}
//set 给这个数据设置值
public void setName(String name){
this.name = name;
}
}
(4).这样在main方法中,s1这个对象就可以调用公共方法了
public class Application {
public static void main(String[] args) {
Student s1 = new Student();
//通过公共方法getName方式获得它的名字
String name = s1.getName();
//s1对象可以调用公共方法setName给name赋值
s1.setName("小陆同学");
System.out.println(s1.getName());
}
}
2.Alt + Isnert :自动生成 get/set 方法
3.封装的意义
- 提高程序的安全性,保护数据
- 隐藏代码的实现细节
- 统一接口
- 增加系统可维护性
二、继承
1.理解继承
-
继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模
-
Java中只有单继承,没有多继承
-
继承是类和类之间的一种关系。除此之外,类和类之间的关系还有依赖、组合、聚合等
-
继承关系的两个类,一个为子类(派生类),一个为父类(基类)。子类继承父类,使用关键字extends来表示
-
子类是基类的拓展
-
子类继承了父类就会有父类的所有方法
例: 创建一个基类Person,创建两个派生类 Student 和 Teacher
//父类:Person类 public class Person { }
//子类:Student 是 父类Person的拓展 public class Student extends Person{ }
//子类:Teacher 是父类Person的拓展 public class Teacher extends Person{ }
例: 子类继承了父类就会有父类的所有方法
//父类:Person类 public class Person { public int money = 10_000_000; }
//子类:Student 是 父类Person的拓展 public class Student extends Person{ }
public class Application { public static void main(String[] args) { Student student = new Student(); System.out.println(student.money); } }
运行结果
2.对父类的属性进行封装
//修饰符优先级自上而下递减 //public 公有的 //protect 受保护的 //default 默认的 //private 私有的 (子类不能继承父类的私有属性)
例:
//父类:Person类 public class Person { private int money = 10_000_000; public int getMoney() { return money; } public void setMoney(int money) { this.money = money; } }
public class Application { public static void main(String[] args) { Student student = new Student(); System.out.println(student.getMoney()); } }
3.在Java中,所有的类都默认直接或间接继承object类
- 出处:https://www.cnblogs.com/l574/p/15055456.html
最新更新
python爬虫及其可视化
使用python爬取豆瓣电影短评评论内容
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比