黑马程序员技术交流社区

标题: 关于创建对象 [打印本页]

作者: 任振铭    时间: 2015-10-1 21:16
标题: 关于创建对象
突然发现创建对象都是在某一个方法中创建,没见到过在类中方法外创建的,如果在类中方法外创建对象会出现什么情况呢?
作者: 碧血丹心    时间: 2015-10-1 21:18
其他类的方法返回本类的对象~
作者: cuijinghao    时间: 2015-10-1 21:28
如果是公共类创建对象应该是没问题的,而且创建了也可以用
作者: spruce    时间: 2015-10-1 21:46
就是一个类类型的变量的定义
作者: 任振铭    时间: 2015-10-1 22:06
碧血丹心 发表于 2015-10-1 21:18
其他类的方法返回本类的对象~

请具体说一下,不太理解你这句话
作者: 德胜    时间: 2015-10-1 22:07
一样,都一样,看你怎么布局
作者: 任振铭    时间: 2015-10-1 22:08
cuijinghao 发表于 2015-10-1 21:28
如果是公共类创建对象应该是没问题的,而且创建了也可以用

公共类创建对象也是在main方法中创建的,如果在main方法外创建有什么效果,会不会报错?
作者: 任振铭    时间: 2015-10-1 22:10
spruce 发表于 2015-10-1 21:46
就是一个类类型的变量的定义

不太明白唉
作者: 看海的管家    时间: 2015-10-1 22:16
在eclipse里试一下不就知道了
作者: 任振铭    时间: 2015-10-1 22:48
看海的管家 发表于 2015-10-1 22:16
在eclipse里试一下不就知道了

试了试,不报错,但是这样做具体有什么意义,就得以后慢慢发掘了
作者: 插兜    时间: 2015-10-1 23:07

如果是公共类创建对象应该是没问题的,而且创建了也可以用
作者: 曾经的星空    时间: 2015-10-1 23:28
就像全局变量似的?叫它全局对象?
作者: 任振铭    时间: 2015-10-2 20:53
曾经的星空 发表于 2015-10-1 23:28
就像全局变量似的?叫它全局对象?

你觉得呢
作者: 曾经的星空    时间: 2015-10-3 12:00
任振铭 发表于 2015-10-2 20:53
你觉得呢

试了一下,编译运行都没问题。
我感觉是,像字符串、数组这种引用数据类型能做成员变量,看来类的对象的引用也能做成员变量。
作者: 任振铭    时间: 2015-10-3 17:43
曾经的星空 发表于 2015-10-3 12:00
试了一下,编译运行都没问题。
我感觉是,像字符串、数组这种引用数据类型能做成员变量,看来类的对象的 ...

对象确实可以做成员变量,就是不知道有什么用,以后应该会学到
作者: 921    时间: 2015-10-3 21:34
把这个类定义成public ,在这个类中创建对象是没有问题的
作者: 任振铭    时间: 2015-10-3 22:46
921 发表于 2015-10-3 21:34
把这个类定义成public ,在这个类中创建对象是没有问题的

这样创建的对象有什么意义?
作者: xinchi    时间: 2015-10-3 23:00
毫无疑问,会报错
作者: charryxiaocai    时间: 2015-10-3 23:21
这个是可以的,但是不能使用在静态方法中,否则要定义成静态对象!
作者: 任振铭    时间: 2015-10-4 10:29
xinchi 发表于 2015-10-3 23:00
毫无疑问,会报错

我试过了,不会报错
作者: 任振铭    时间: 2015-10-4 10:30
charryxiaocai 发表于 2015-10-3 23:21
这个是可以的,但是不能使用在静态方法中,否则要定义成静态对象!

对象也有静态的?
作者: 921    时间: 2015-10-4 22:02
任振铭 发表于 2015-10-3 22:46
这样创建的对象有什么意义?

class Engine{
    public void start(){}
    public void rev(){}
    public void stop(){}
    public void service(){System.out.println("asddddddf");}
}
class Wheel{
    public void inflate(int psf){}
}
class Window{
    public void rollup(){}
    public void rolldown(){}
}
class Door{
    public Window window=new Window();
    public void open(){}
    public void close(){}
}
public class Car{
    public Engine engine=new Engine();
    public Wheel[] wheel=new Wheel[4];
    public Door left=new Door(),right=new Door();
    public Car(){                          
        for(int i=0;i<4;i++)
            wheel=new Wheel();
    }
    public static void main(String[] args) {
        Car car=new Car();
        car.left.window.rollup();
        car.wheel[0].inflate(72);
        car.engine.service();
    }
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2