封装
隐藏类的内部细节 提供访问外部的接口
封装内的属性有私有属性 private修饰符 来修饰
封装使用 set get 方法
this 表示 当前对象
简而言之就是包装 也可以认为是信息隐藏 是指利用抽象数据类型
将数据和数据的操作封装在一起 数据被保护在抽象数据类型内部
尽可能的隐藏内部细节 只保留对外的接口 可以与外部发生关联
使用者无需知道对象内部细节,可以直接通过外部接口来访问该对象
封装确实可以使我们容易地修改类的内部实现,而无需修改使用了该类的客户代码。
封装的好处
良好的封装能够减少耦合
类内部结构可修改
可以对成员进行精确控制
隐藏细节
private String id;
private String name;
private int age;
public String getId(){
return id;
}
public void setId(String id){
this.id = id;
}
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
// 提供外部访问属性的方法。
public int getAge(){
return age;
}
// 提供外部赋值属性的方法。
public void setAge(int age){
if(age>=18 && age<=38){
this.age = age;
}else{
this.age = 18;
}
}
构造方法
类中拥有构造方法 构造方法是用来构建对象
构造方法是 方法名与类名相同 无返回值的方法
默认一个类中 有一个无参数的构造方法
当手动提供了一个有参构造方法时 系统将不再提供无参构造方法
public class Employee {
private String id;
private String name;
private int age;
public String getId(){
return id;
}
public void setId(String id){
this.id = id;
}
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
// 提供外部访问属性的方法。
public int getAge(){
return age;
}
// 提供外部赋值属性的方法。
public void setAge(int age){
if(age>=18 && age<=38){
this.age = age;
}else{
this.age = 18;
}
}
// 提供: 空参构造方法。
public Employee(){
System.out.println("这个对象创建了。");
}
// 提供:有参构造方法。
public Employee(String id,String name,int age){
this.id = id;
this.name = name;
if(age>=18 && age<=38){
this.age = age;
}else{
this.age = 18;
}
}
方法的重载
在一个类中 方法名称相同 参数列表不同 与返回值无关的方法叫做方法重载。
public void show(){
System.out.println("123");
}
// 方法的重载
public void show(int a){
System.out.println("123");
}
// 方法的重载
public void show(int b,double c){
}
// 方法的重载
public void show(double c,int b){
}
// 方法的重载 ,错误,方法的重载,与参数列表有关,与返回值无关。
// public int show(double c,int b){
// }