刚开始学java,有个问题不太懂,书上说public修饰的变量所有类可见,那么如下代码编译的时候为什么会报找不到ageA?
agaA不是public修饰吗?类B和类Test应该都能引用它吧?class A
{
public int ageA = 1;
}
class B
{
public int ageB;
public void print(){
System.out.println(this.ageB);
}
}
public class Test
{
public static void main(String[] args){
B b = new B();
b.ageB = ageA;
b.print();
}
}
agaA不是public修饰吗?类B和类Test应该都能引用它吧?class A
{
public int ageA = 1;
}
class B
{
public int ageB;
public void print(){
System.out.println(this.ageB);
}
}
public class Test
{
public static void main(String[] args){
B b = new B();
b.ageB = ageA;
b.print();
}
}
B b = new B();
A a = new A(); // 创建一个A的对象
b.ageB = a.ageA; // 用该类的对象访问
b.print();
}
如果 是类变量 比如:class A {
public static int ageA = 1; // 注意 static 修饰符
}public class Test {
public static void main(String[] args){
B b = new B();
b.ageB = A.ageA; // 用类名就可以
b.print();
}
}
{
public int ageA = 1;
}
class B
{
public int ageB;
public void print(){
System.out.println(this.ageB);//这里调用ageB是this对象调用的
}
}
public class Test
{
public static void main(String[] args){
B b = new B();
b.ageB = ageA;//这里用对象b调用ageB的
b.print();//这里由对象b调用print()方法
}
}
当然在某个类的内部调用这类里面的方法或变量时 方法的前面或变量的前面可以没有对象的引用 但是系统会自动的给你加上this来表示当前对象来调用 为了增加可读性最好写上this 不写也行