一:private对于类和对象(同C++)
private是只有这个类内部可以访问(类的成员函数和定义初始化)
private是类之间的限制,而不是对对象的限制《重点》
同类对象是可以直接访问对象的私有成员
class priTest{private int age;public void setAge(int a) {this.age=a;}public int getAge() {return this.age;}public int compare(priTest obj1) {int flag=0;if(this.age>obj1.age) {flag=1;}return flag;} }public class PrivateTest {public static void main(String[] args) {priTest p1= new priTest();priTest p2= new priTest();p1.setAge(15);p2.setAge(16);int ret=p1.compare(p2);System.out.println(ret);} }
二:子类对于父类private成员变量的访问
虽然子类无法继承父类的private变量,但是其父类private成员变量和方法依然存在,可以通过父类的公共方法(未重写)去访问到那些字段和方法
class priTest{private int age;public void setAge(int a) {this.age=a;}public int getAge() {return this.age;}public int compare(priTest obj1) {int flag=0;if(this.age>obj1.age) {flag=1;}return flag;} }class priSonTest extends priTest{public void test() {System.out.println("nothings");} }
public class PrivateTest {public static void main(String[] args) {priSonTest p2= new priSonTest();p2.setAge(16);System.out.println(p2.getAge()); } }
二是可以满足一的
三:static类静态变量的访问
C++中static只能通过 类名.静态成员变量 进行访问 但是java中除此之外还有其他访问形式: 1.同C++ 2.通过对象可以访问public static成员变量 3.可以通过静态成员函数访问 4.可以通过普通成员函数访问
注意:不允许通过静态成员函数去访问非静态成员变量或者方法
class Parent{public int a;public void start() {System.out.println("paretn");} }class Child extends Parent{public static int b=3;public void start() {System.out.println("child");System.out.println(a);a+=3; b+=6; //方法四访问}public static void change(int c) { b+=c; //方法三访问} }public class MaintTest {public static void main(String[] args) {Child c = new Child();c.start();c.change(5); System.out.println(Child.b); //方法一访问System.out.println(c.b); //方法二访问Child.change(3);System.out.println(Child.b);System.out.println(c.b);}}
child 0 14 14 17 17