Topic: private 调用问题

  Print this page

1.private 调用问题 Copy to clipboard
Posted by: athen
Posted on: 2005-02-04 12:01

class Soap {
private String s;
Soap() {
System.out.println("Soap()");
s = new String("Constructed");
}
public String toString() { return s; }
}

public class Bath {
private String
// Initializing at point of definition:
s1 = new String("Happy"),
s2 = "Happy",
s3, s4;
Soap castille;
int i;
float toy;
Bath() {
System.out.println("Inside Bath()");
s3 = new String("Joy");
i = 47;
toy = 3.14f;
castille = new Soap();
}
void print() {
// Delayed initialization:
if(s4 == null)
s4 = new String("Joy");
System.out.println("s1 = " + s1);
System.out.println("s2 = " + s2);
System.out.println("s3 = " + s3);
System.out.println("s4 = " + s4);
System.out.println("i = " + i);
System.out.println("toy = " + toy);
System.out.println("castille = " + castille);
}
public static void main(String[] args) {
Bath b = new Bath();
b.print();
}
}
运行结果

Inside Bath()
Soap()
s1 = Happy
s2 = Happy
s3 = Joy
s4 = Joy
i = 47
toy = 3.14
castille = Constructed

我是这样理解的castille = Constructed的结果是由调用class Soap中的String a,但这个变量为私有的 为什么public class Bath 还能调用它呢

2.Re:private 调用问题 [Re: athen] Copy to clipboard
Posted by: simbas
Posted on: 2005-02-04 22:23

castille = Constructed的结果是由调用class Soap中的构造来的吧~
楼主的疑问从何而来?

3.Re:private 调用问题 [Re: athen] Copy to clipboard
Posted by: miaomiao9527
Posted on: 2005-02-06 09:11

那是你在 Soap 类中有一个方法调用了那个便量,在下面的类中调用那个方法,你要知道在同一个类中方法可以訪问丝有变量的,他的作用是不让不和法的用戸改动該值达到封装的目的。
我建一你类和类之间不要有过多這样的关系。

4.Re:private 调用问题 [Re: athen] Copy to clipboard
Posted by: 孤独王子
Posted on: 2005-02-06 09:19

我是这样理解的castille = Constructed的结果是由调用class Soap中的String a,但这个变量为私有的 为什么public class Bath 还能调用它呢

美什么问题,一个class里面的method 完全可以访问任意属性的,跨class不行

String a ??? a 在哪?


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923