一: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=;
if(this.age>obj1.age) {
flag=;
}
return flag;
}
}
public class PrivateTest {
public static void main(String[] args) {
priTest p1= new priTest();
priTest p2= new priTest();
p1.setAge();
p2.setAge();
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=;
if(this.age>obj1.age) {
flag=;
}
return flag;
}
}
class *Test extends priTest{
public void test() {
System.out.println("nothings");
}
}
public class PrivateTest {
public static void main(String[] args) {
*Test p2= new *Test();
p2.setAge();
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=;
public void start() {
System.out.println("child");
System.out.println(a);
a+=;
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();
System.out.println(Child.b); //方法一访问
System.out.println(c.b); //方法二访问
Child.change();
System.out.println(Child.b);
System.out.println(c.b);
}
}