文章目录
面向对象有三大特性 : 封装 继承 多态
封装
程序设计中遇到的问题
public class Student {
String name;
int age;
String sex;
String birthday;
}
测试类中引用
Student stu = new Student();
stu.name = "于志强";
stu.sex = "男";
stu.age = 2000;
程序设计的缺陷
外界可以随意的对对象的属性进行修改,赋值操作,没有任何约束
封装
实质是, 将类的状态隐藏在类内部, 不允许外部程序直接访问, 而是通过该类提供的方法来实现对隐藏信息的操作和访问
优势
- 反映了事物的相对独立性, 有效地避免了外部错误对对象的影响
- 隐藏类的实现细节,让使用者只能通过规定方式访问数据, 限制不合理操作
使用方式
private int age;
/**
* 给age 创建相对应的方法
* 通过方法内部的逻辑 来限制外界的访问
*/
public void setAge(int age){
// 如果年龄在 0-127岁之间可以赋值
if(age > 0 && age < 127){
this.age = age;
}else{
System.out.println("年龄设置有误!");
}
}
public int getAge(){
return age;
}
举个栗子
想见明星
先和经纪人 预约, 经纪人条件列出来给你,出场费一百万
包结构
包的作用
- 包可以将类组成较小的单元 (类似于文件夹)
- 防止命名冲突 (学生 中学生middle 大学生college)
- 允许制定规则在更广的范围内保护类,数据和方法
语法标准
// 声明 必须位于 java源文件的第一条非注释语句
package 包结构;
包结构通用规范
- 一个唯一的包,前缀通常是小写的ASCII 字母, 并且是一个顶级域名,(com,cn,edu,gov,net,org)通常使用组织的网络域名的逆序 (cn.bdqn)
- 域名.公司名.项目名.项目模块名
使用包结构
import college.Student;
回忆使用Scanner 类
import java.util.Scanner;
访问权限修饰符
包结构是一种访问控制机制,可以通过包限制和制约类之间的访问关系
类的访问修饰符
修饰符 | 同一个包 | 不同包 |
---|---|---|
public | 可以使用 | 可以使用 |
默认的 | 可以使用 | 不可以使用 |
类成员的修饰符
修饰符 | 同一个类中 | 同一包中 | 子类 | 不同包 |
---|---|---|---|---|
public (公共的) | √ | √ | √ | √ |
protected (受保护的) | √ | √ | √ | <