入口
-
java面向对象三大特性:
封装:
将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。
继承:
继承是类与类的一种关系,是一种“is a”的关系。比如“狗”继承“动物”,这里动物类是狗类的父类或者基类,狗类是动物类的子类或者派生类。
多态:
同一个引用类型,使用不同的实例,执行不同的操作。方法重写是实现多态的基础。
-
java面向对象三大特性之封装(数据的隐藏):
通常,应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为信息隐藏
1、提高程序的安全性,保护数据
2、隐藏代码的实现细节
3、统一接口
4、提高系统的可维护性
-
注意:
程序追求:高内聚,低耦合
高内聚:类的内部数据操作细节自己完成,不允许外部干涉
低耦合:仅暴露少量的方法给外部使用
良好的封装便于修改内部代码
提高系统的可维护性
-
实例:
package oop.demo5; /** * java面向对象三大特性:封装、继承、多态 * java面向对象三大特性之封装(数据的隐藏): * 通常,应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为信息隐藏 * 1.提高程序的安全性,保护数据 * 2.隐藏代码的实现细节 * 3.统一接口 * 4.提高系统的可维护性 * * 程序追求:高内聚,低耦合 * 高内聚:类的内部数据操作细节自己完成,不允许外部干涉 * 低耦合:仅暴露少量的方法给外部使用 * 良好的封装便于修改内部代码 * 提高系统的可维护性 */ public class Application { public static void main(String[] args) { Student s1 = new Student(); s1.setName("秦疆"); System.out.println(s1.getName()); s1.setAge(999); //不合法数据 setAge方法校验 System.out.println(s1.getAge()); } }
属性私有 get set
-
初识:
private 属性私有
快捷键:Alt + Insert 自动生成 get set 方法
-
示例:
-
实例:
package oop.demo5; /** * private * 属性私有 * 快捷键:Alt + Insert 自动生成 get、set 方法 */ public class Student { private int id; //学号 private String name; //名字 private char sex; //性别 private int age; //年龄 /** * 提供可以操作这些属性的方法 * 提供一些 public 的 get、set 方法 * get:取值 * set:赋值 */ public String getName(){ return this.name; } public void setName(String name){ this.name = name; } public int getId() { return id; } public void setId(int id) { this.id = id; } public char getSex() { return sex; } public void setSex(char sex) { this.sex = sex; } public int getAge() { return age; } public void setAge(int age) { if (age > 120 || age < 0){ //年龄不合法则为3岁小朋友 this.age = 3; }else { this.age = age; } } }