书上说:"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类的对象,这里应当输出:"你好";
}
}
请问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类的对象,这里应当输出:"你好";
}
}
{
void qq()
{
System.out.println("你好!");
}
}
class Bb extends Aa
{
public static void main(String args[])
{
Bb b=new Bb();
b.qq();
}
}
这样就可以了, 因为Bb继承了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()。
但是实例化的时候是这样的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模式(没有明显的区别的)
不知道我说的你能不能明白呀!
可以继续讨论
你们上边实现的,我懂但是你们所做的并不是和我说的一样啊?
我的意思是说有一个A类中有一个方法qq()这个方法无返回值,会输出"你好",而在另一个类B中有一个变量temp,temp的值为"中国",这样定义好之后,我想在B类中的main方法当中,构造一个B类的实例对象b,之后我想用:b.temp(此时输出"中国"),b.temp.qq()(会输出"你好")
还请各位多多费心,特别是"miaoxikui() "希望你能解决我的这个问题.
能这么用么?
不是跟b.temp.qq()形式一样吗?
public void qq(){
System.out.println("你好");
}
}
class B{
A temp=new A();
public static void main(String[] args) {
B b=new B();
b.temp();
b.temp.qq();
}
public void temp(){
System.out.println("中国");
}
}
查了下JDK
out是PrintStream类的对象!
应该是OutputStream类的对象!