1 封装概述
封装可以被认为是一个保护屏障,防止该类的代码和数据被其他类随意访问。要访问该类的数据,必须通过指定的 方式。适当的封装可以让代码更容易理解与维护,也加强了代码的安全性。
(1)原则
将属性隐藏起来,若需要访问某个属性,提供公共方法对其访问。
(2)封装的步骤
①使用private关键字来修饰成员变量
②对需要访问的成员变量,提供对应的一对get方法和set方法
get: 不能有参数,返回值类型和成员变量对应;
set: 不能有返回值,参数类型和成员变量对应;
public class Student{
private String name;
private int age;
//get方法 不需要参数,返回值类型和成员变量相同
public String getName(){
return name;
}
//set方法 不需要返回值,参数类型和 成员变量相同
public void setName(String name){
this.name = name;
}
public int getAge(){
return age;
}
public void setAge(int age){
this.age = age;
}
(3) private关键字
1.private是一个权限修饰符,代表最小权限.
2.可以修饰成员变量和成员方法.
3.被private修饰后的成员变量和成员方法,只在本类中才能访问
(4) this关键字
this的含义
this代表所在类的当前对象的引用(地址值),即对象自己的引用.
记住 :方法被哪个对象调用,方法中的this就代表那个对象。即谁在调用,this就代表谁。
this使用格式
public class Student {
private String name;
private int age;
public void setName(String name) {
//name = name;
this.name = name;
}
public String getName() {
return name;
}
public void setAge(int age) {
//age = age;
this.age = age;
}
public int getAge() {
return age;
}
}
注意:当方法的局部变量和成员变量重名的时候,根据"就近原则",优先使用局部变量.
例如:
public class Person{
String name; //自己的名字
//参数name是对方的名字
//成员变量是自己的名字
public void SayHello(String name){
System.out.println(name+" ,你好. 我是 " + name);
}
}
(5) 构造方法
当一个对象被创建的时候,构造方法用来初始化该对象,给对象的成员变量赋初始值.
构造方法的定义格式
修饰符 构造方法名(参数列表){
// 方法体
}
使用 构造方法后,代码如下:
public class Student {
private String name;
private int age;
// 无参数构造方法
public Student() {
}
// 有参数构造方法
public Student(String name,int age) {
this.name = name;
this.age = age;
}
}
注意
①构造方法名必须与类名相同
②构造方法不用写返回值类型
③系统会默认创建一个无参构造方法;如果自己创建了构造方法,系统则不会
④构造方法也是可以进行重载的 (重载: 方法名称相同,参数不同.)