一、成员变量和局部变量
1、成员变量和局部变量简述
在Java中,根据定义变量位置的不同,可以将变量分为两大类:成员变量(存在于堆内存中,和类一起创建)和局部变量(存在于栈内存中,当方法执行完成呢、,让出内存,让其他方法来使用内存)。
2.作用范围不一样
局部变量:只有方法当中才可以使用,出了方法就不能再用了
成员变量:整个类都可以通用
4.内存中位置不同:成员变量(堆内存)局部变量(栈内存)
6.初始化值不同:成员变量(有默认初始化值)局部变量(没有默认初始化值,必须先定义,赋值才能使用)
二、封装
1.private关键字
private是一个修饰符,可以用来修饰成员(成员变量,成员方法)被private修饰的成员,只能在本类进行访问,针对private修饰的成员变量,如果需要被其他类使用,提供相应的操作
提供“get变量名()”方法,用于获取成员变量的值,方法用public修饰
提供“set变量名(参数)”方法,用于设置成员变量的值,方法用public修饰
**3.**封装的好处
(1)隐藏实现细节。这样做可以防止程序员依赖这些细节,也就是说,程序员无需担心对任何实现细节所做的更改。因为这些更改不会影响使用该类的其他代码。
(2)实现对属性的访问限制,增强程序的可维护性。
(3)防止用户意外的删除数据。例如,类可以包含许多相互依赖的字段,如果程序员对其中一个字段做了更改,而未更改相关的字段则可能会产生错误。然而,如果用方法来更改字段,则可以确保更改所有相关字段的值,使类的状态保持一致。那还可以隐藏它的一些方法,以防止用户调用这些方法。
(4)隐藏类的详细信息学类更容易使用和理解。
package dl;
public class dl66 {
public static void main(String[] args) {
jyga4one student1=new dl66one();
student1.setAge(18);
student1.setName("dl");
student1.show();
dl66one student2=new dl66one();
//student student2=student1;
student2.setAge(66);
student2.setName("陈冠希");
student2.show();
student1.show();
}
}
package dl;
public class dl66one {
private String name;
private int age;
private boolean male;
public void setMale(boolean boy) {
male=boy;
}
public boolean isMale() {
return male;
}
public void setAge(int num) {
if (num < 200 && num >= 0) {
age = num;
} else {
System.out.println("数据错误");
}
}
public int setAge() {
return age;
}
public void setName(String name) {
this.name=name;
}
public String setName() {
return name;
}
public void show() {
System.out.println("我叫:" + name + ",年龄"+ age);
}
}