面向对象三大特性:封装、继承、多态
封装
为什么需要封装?
1、提高程序的安全性。隐藏内部细节。提供对外操作的“接口”,此接口是公共的方法
2、对内部数据进行保护的同时,还可以自定义设置对象属性值
封装的作用?
1、对象的数据封装特性彻底消除了传统结构方法中数据与操作分离所带来的种种问题,提高了程序的可复用性和可维护性,降低了程序员保持数据与操作内容的负担。
2、对象的数据封装特性还可以把对象的私有数据和公共数据分离开,保护了私有数据,减少了可能的模块间干扰,达到降低程序复杂性、提高可控性的目的
/*
*Student类的封装
*/
class Student {
private String name;
private int age;
private int id;
private int height;
private int weight;
//学习
public Student(){
//无参构造方法
}
public Student(String name,int age,int id,int height,int weight){
this.name = name;
this.age = age;
this.id = id;
this.height = height;
this.weight = weight;
}
public void study() {
System.out.println("我爱学习");
}
//吃饭
public void eat(){
System.out.println("我要吃米饭");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge(){
return age;
}
public void setAge(int age){
this.age = age;
}
public int getId(){
return id;
}
public void setId(int id){
this.id = id
}
public int getHeight(){
return height;
}
public void setHeight(int height){
this.height = height;
}
public void setWeight(int weight){
this.weight = weight;
}
}
/*
*test类
*/
public class Test{
public static void main(String[] args){
Student student = new Student("张三",18,11112,170,75);
//由于将学生类的属性进行了私有化,所以不能直接更改学生类的属性
//可以使用get、set方法对学生类的属性进行更改和访问;
student.setName("李四");//可以通过set方法对值进行修改
System.out.println(student.getName);//可以通过get访问属性
//由于没有getWeight方法,所以对weight进行了保密,不能访问
}
}
//不知道为什么今天写这代码时,从自己在软件上写好的复制粘贴过来就出现了问题,直接清
//除了,很难受,谁知道怎么解决啊???????