目录
1.封装的初步认识
个人对于封装的通俗理解,就是将实现许多功能的物件通过一个外壳包裹在一起外面的人看不见里面是如何运作的,只能使用其功能。
像是电视,我们将插口插上电接上信号通过遥控就可以使用,我们使用的都是电视的功能,但却看不见电视显示屏内部的种种部件是什么。电视就像是被“封装起来”,就像被外面的外壳包裹起来。
封装:将数据和操作数据的方法进行有机结合,隐藏对象的属性和实现细节,仅对外公开接口来和对象进行 交互
2.封装的实现
在java中通过类和访问权限来实现封装,类可以将数据以及封装数据的方法结合在一起,访问权限可以限定方法和字段能否在类外使用。
2.1private访问限定符
private和public的使用方法相同
被private修饰的属性和方法只能在同一个类中使用。
2.2封装的实现举例
创建一个类,里面的属性用
class Cat{//一个类,Cat
private int age;
private String name;
public void sayName(Cat name){
System.out.println("我的名字叫" + this.name);
}
}
当我们实例化对象,想初始化的时候。
会发现失败,这是因为我们使用了privat修饰符,使得age和name属性不得在类外使用。
这样的话那我们该怎么把他们初始化呢?这时候可以使用set和get方法分别来对属性初始化和拿取到他。
可以在idea编译器中,通过快捷方式得到各个属性的set和get方法
对界面右键,选择Generate
再根据需求选择getter、setter或者一起选择
这里选择的是getter和setter,可以看见Cat类下的属性,可以通过按住Ctrl键来选择多个属性
设置成功之后得到以下的方法
class Cat{//一个类,Cat
private int age;
private String name;
public void sayName(Cat name){
System.out.println("我的名字叫" + this.name);
}
public int getAge() {//得到age
return age;
}
public void setAge(int age) {//给age赋值
this.age = age;
}
public String getName() {//得到name
return name;
}
public void setName(String name) {//给name赋值
this.name = name;
}
}
public static void main(String[] args) {
Cat cat1 = new Cat();//实例化一个对象
// cat1.name = "dudu";
// cat1.age = 1;
cat1.setName("dudu");
cat1.setAge(1);
System.out.println(cat1.getAge());
System.out.println(cat1.getName());
}
}
打印出来的结果:
这样就实现了类的封装,隐藏了类的实现细节。