java新手请教一下问题,不知道我的理解是否正确!
书上说: "out是System类的一个成员变量,而out又是一个类的对象,它有一个方法println() "
请问System类中的out变量是哪一个类的对象,(还有我很想知道在一个类中如何让一个成员变量即做为成员变量,
又作为另一个类的对象),下面是我写的一段代码,想完成这个功能,但是不正确,请老师改正:
class Aa
{
void qq()
{
System.out.println( "你好! ");
}
}
class Bb extends Aa
{
(变量类型)temp //请问此时的temp变量应当用什么类型,又当如何成为Aa类的对象.
public static void main(String args[])
{
Bb b=new Bb();
b.temp.qq(); //如果上面已经设置了temp变量为Aa类的对象,这里应当输出: "你好 ";
}
}
------解决方案--------------------class Aa
{
void qq()
{
System.out.println( "你好! ");
}
}
class Bb extends Aa
{
public static void main(String args[])
{
Bb b=new Bb();
b.qq();
}
}
这样就可以了, 因为Bb继承了Aa,所以会直接调用父类方法
------解决方案--------------------class Aa
{
void qq()
{
System.out.println( "你好! ");
}
}
class Bb extends Aa
{
(public static void main(String args[])
{
Bb b=new Bb();
b.qq();
}
}
Bb继承了Aa,既拥有Aa的所有方法和属性。Bb中实例化了Bb的对象b,b可以调用父类的方法和属性。通过b.qq()得到了父类中Bb 的方法 void qq()。
------解决方案--------------------System类中的out变量是PrintStream 的对象
但是实例化的时候是这样的public final static PrintStream out = nullPrintStream();
在一个类中让一个成员变量既做为成员变量,
又作为另一个类的对象,很简单,可能你想的太多了
只要让一个类持有另外一个类的引用就可以了,也就是在一个类中定义一个引用类型的成员变量旧可以了.
如
public class A
{
A()
{}
void qq()
{
System.out.println( "你好! ");
}
}
public class B
{
B(){}
public A a = new A();
void qq()
{
a.qq();
}
public static void main(String args[])
{
B b=new B();
b.qq();
}
}
这在 JAVA中也是一种很重要的设计模式呀!叫他decorate模式或者叫facade模式(没有明显的区别的)
不知道我说的你能不能明白呀!
可以继续讨论
------解决方案--------------------b.temp是变量,b.temp.qq()是变量的方法
能这么用么?
------解决方案--------------------学习
------解决方案--------------------public static final PrintStream out
查了下JDK
out是PrintStream类的对象!
------解决方案--------------------up
------解决方案--------------------帮顶