JAVA基础(44)---局部变量和成员变量的区别及封装

版权声明:如需转载请标明出处 https://blog.csdn.net/yj201711/article/details/84021616

成员变量和局部变量的区别

                               1、在类中的位置不同

                                                  成员变量:类中方法外
                                                  局部变量:方法内或者方法声明上
                               2、在内存中的位置不同
                                                  成员变量:堆内存
                                                  局部变量:栈内存
                               3、生命周期不同
                                                  成员变量:随着对象的存在而存在,随着对象的消失而消失
                                                  局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
                              4、初始化值不同
                                                  成员变量:有默认的初始化值
                                                  局部变量:没有默认的初始化值,必须先定义,赋值,才能使用

面向对象有三大特征:封装  继承  多态

封装:对外部隐藏实现细节,公开访问方法;

属性的封装:private(私有的)

使用 private 修饰的属性和方法只能在该类的内部访问,在该类以外的其他地方,不允许访问
 

public class WorkText{
    Work work = new Work();
    work.name = "张三";
    System.out.println(work.name);
    System.out.println(work.salary);

}

class Work{
    private String name;
    private int salsry;
}

这段代码对Work属性进行了封装,所以WorkText访问不到,会报错。

public class WorkerTest
{
	public static void main(String[] args){
		Worker worker = new Worker();
		worker.setName("张三");
		worker.setSalary(10000);
		System.out.println(worker.getName());
		System.out.println(worker.getSalary());
	
	}
}
class Worker{
	private String name;
	private int salary;
	public String getName(){
		return name;
	}
	public double getSalary(){
		return salary*0.8;
	}
	
	public void setName(String wname){
	
		name = wname;
	}
	public void setSalary(int wsalary){
	
		salary = wsalary;
	}
}

这段代码可以运行,如果想要获取到类里面封装的属性的值,需要构造一个 get 方法;如果想要给类里封装的属性赋值,需要构造一个 set 方法。

猜你喜欢

转载自blog.csdn.net/yj201711/article/details/84021616