JAVA核心技术I---JAVA基础知识(查漏补缺private,static)

时间:2023-11-28 10:59:20

一: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);
}
}

JAVA核心技术I---JAVA基础知识(查漏补缺private,static)

二:子类对于父类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());
}
}

JAVA核心技术I---JAVA基础知识(查漏补缺private,static)

二是可以满足一的

三: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); } }
child