public class Demo1 {
private String name; //static修饰的成员变量被称为静态变量,所有的实例共享。
private static int age; // private 修饰的成员变量是私有的只能在它所在的类中被访问。
@Test
public void test(){
Demo1 demo1=new Demo1();
demo1.name="aa";
System.out.println("name:"+name+" "+"demo1.name:"+demo1.name);
name="bb";
System.out.println("name:"+name);
/*
* 结果 name:null demo1.name:aa;
* name:bb
* private修饰的成员变量是私有的,每new一个实例都会在内存中分配一块空间存取实例的属性,所以demo1.name=aa;
* 而name是本类的属性没有赋值所以输出的是null(这是因为实例化对象时java虚拟机会自动为成员变量初始化不同类型赋予不同的值)
* 而后面 name="bb",相当于给本类的name属性赋值,所以再输出name就不为空了结果为bb;
*/
Demo1 demo2=new Demo1();
Demo1 demo3=new Demo1();
demo2.age=10;
demo3.age=30;
System.out.println("年龄:"+demo2.age);
System.out.println("年龄:"+demo3.age);
System.out.println("年龄:"+age);
}
/*
* 结果:30
* 30
* 30
* static修饰的成员变量称作静态变量,被所有实例共享,相当于为age属性分配了一块空间所共享。
*/
}
我如果用private修饰的成员变量,变成了私有的成员变量只能在本类中进行访问,但是我想在其他类中进行访问,所以就提供了set、get方法,相当于提供了两个公共的方法让其他类访问,这是不是就是封装的思想呢?
新手不知道上面说得对不对,求大神指导指导。能不能推荐点基础讲的比较细的书