java中new出一个对象
对象是什么
对象是类的一个实例,是以类为模板在内存中创建的实际且存在的实例(实际存在的一个东西)
对象就是,根据自己想象的女友(男友)模板,来制造出一个女友(男友)机器人(模板就是自己的想象,也就是图纸,对象就是制造出来的东西)
对象的创建和使用
要创建对象,就要现有类
先创建一个类
//这就是一个简单的类
public class Car {
String name;
String color;
float price;
public void run() {
System.out.println(name + "车辆可以行使");
}
public void stop() {
System.out.println(name + "车辆可以刹车");
}
}
根据类再来创建对象(详解 见代码注释)
public class TestCar {
public static void main(String[] args) {
/*
* 使用new 关键字来创建一个对象 new Car构造Car类的对象
* Car() 使用类的构造方法,初始化类
* Car bm 声名一个构造方法名称相同的类型的变量
* = 把在内存中对象存储的地址赋值给左边的bm变量*/
Car bm = new Car();
bm.name = "宝马";
bm.color = "黑色";
bm.price = 4000f;
bm.run();
bm.stop();
System.out.println("--------------");
Car wl = new Car();//创建多个对象
wl.name = "五菱";
wl.color = "五彩斑斓";
wl.price = 40000f;
wl.run();
wl.stop();
}
}
对象与引用
java中的数据类型:
基本类型和引用类型
引用类型:就是除了基本类型以外的都是引用类型(用类作为类型、数组、接口)也叫做复合类型,它的值其实是对象在内存空间中的地址,而具体的对象是存在在堆中
Car car = new Car();
在通常情况下,我们把这个动作称为创建了一个对象,其实它包含了三个动作。
1、右边的new Car(),是以Car这个类为模板,然后调用Car类的构造函数,在内存堆里面创建一个Car类的对象
2、左边的“Car car”是创建了一个类型为Car的引用型变量
3、“=”的意思是值将对象的引用指向刚刚建立好的那个Car对象
new Car();这个语句在堆空间中创建出了一个实体,虽然它确确实实的存在的实体,但是我们是看不到、摸不到的
对象本身是没有名字的,我们是不能直接去访问到它的,所以我们就需要一个对象的引用来作为桥梁间接的访问对象
对象就好比是一个气球,我们是抓不到它的,引用变量就好比事故绳子,系在气球上,这样我们就可以操控这个气球了
1、Car car1:就单纯的创建了一个绳子,没有再做任何操作
2、Car car2:又创建了一个绳子,也没再做任何的操作
3、car1 = new Car(); 这些就是给car1连接上了一个气球(对象)。
4、car2 = car1; 这里就要注意了,这里发生了复制的作用,但更说明的是,对象这个本身是没有被复制的,复制只是对象的引用,就是用了两根绳子共同系在了同一个气球上。
画图示意