public class TestStu{
int id;
String name;
int age;
Computer comp; //comp是对象,可以通过‘.’这个操作符访问对象的相关属性。
void study() {
System.out.println("电脑是"+comp.brand+"价格是"+comp.price+"元");
}
void play() {
System.out.println("在打游戏!!");
}
//构造方法,用于创建这个类的对象。无参数的构造方法可以由系统自动创建。
TestStu(){
}
// main方法是程序执行的入口,必须有。
public static void main(String[]args) {
TestStu Stu=new TestStu(); //创建一个对象
Stu.id=12;
Stu.age=18;
Stu.name="TimeKeeper";
//Stu.study(); //brand未赋值,故不可在此处执行输出
Computer c1=new Computer(); //创建对象,配电脑需要先建一个电脑
c1.brand="戴尔!!"; //给Computer类的brand串赋值
c1.price=5000; //给Computer类的price赋值
Stu.comp=c1; //这儿建好了一个对象,把对象给Stu的“comp”属性。
Stu.play();
Stu.study(); //执行play和study方法
}
}
class Computer{
String brand;
int price;
}
/**运行结果如下
在打游戏!!
电脑是戴尔!!价格是5000元
**/
错误代码:
public class TestStu{
int id;
String name;
int age;
Computer comp; //comp是对象,可以通过‘.’这个操作符访问对象的相关属性。
Computer c1=new Computer();
c1.brand="戴尔!!"; //给Computer类的brand串赋值
c1.price=5000; //给Computer类的price赋值
/**注意:可以在类的方法或者函数中调用其他类的属性。
赋值可以在几个地方,比如static程序块中、main函数中,获取其他方法中。
以上代码直接在类的非方法块中调用别的类的属性,是错误的 !!**/
void study() {
System.out.println("我在学习java!!用的电脑是"+c1.brand+"价格是"+c1.price+"元!!");
}
void play() {
System.out.println("我在玩游戏!!");
}
网上问题:java类中new一个类后,为什么不能直接调用方法么?在类方法中就可以。
class A{
public void print(){
System.out.println("A的print方法");
}
}
Class B{
A a = new A();
a.print();//这里为什么不能调用print方法呢?
解答:
- Java 类定义写在一对花括号内。
- 类定义花括号内的内容仅能包括, 声明 属性、方法, 以及 静态代码块 。
- 调用某一个方法的代码,必须写在某一个方法体或静态代码块内。
- 比如,有些代码必须在项目启动的时候就执行的时候, 就 需要使用静态代码块, 这种代码是主动执行的。因此,将你的代码 a.print();放到静态代码块内,程序启动时就会被主动执行。
-
class A{ public void print(){ System.out.println("A的print方法"); } } public class B{ static A a = new A(); static { a.print();//启动的时候就执行的时候,主动执行 } public static void main(String args[]){ } }