![](http://on91wk3hn.bkt.clouddn.com/17-12-26/26560292.jpg)
针对类的操作无非有两种,第一种是类的定义,第二种是类的使用。在之前的内容已经讨论过类的定义,这次内容来说一说类的使用。
这里继续使用【定义类】内容所用的实例:
Car:
```java
public class Car {
String make;//制造商
double odometer;//里程
int maxSpeed;//最高时速
Engine engine;//引擎
//空构造,也是默认构造。
public Car() {
System.out.println("调用了空构造方法");
}
//一个参数的构造方法,可以传递make值,创建一个对象
public Car(String make) {
this.make = make;
}
//多个参数的构造
public Car(String make, double odometer, int maxSpeed, Engine engine) {
this.make = make;
this.odometer = odometer;
this.maxSpeed = maxSpeed;
this.engine = engine;
}
//汽车启动
public void starup() {
System.out.println(make + ", 启动了");
}
//汽车行驶
public void run() {
System.out.println("80, 行驶");
}
}
```
Engine :
```java
public class Engine {
double power = 5.5;//动力
}
```
## 1. 创建对象
对于类的使用,我们通常要先去根据类来创建一个对象:
```java
public static void main(String[] args) {
//创建一个对象
Car myCar = new Car();
}
```
- `Car myCar` : 定义了一个 `Car` 类型的变量 `myCar`
- `new`:是一个关键字,用来创建一个对象
- `Car()`:调用`Car`类的构造方法 `Car()`
这里有必要解释下内存分配情况,当执行 `Car myCar = new Car();`这句代码时,内存是如何分配的?
作为编程语言,实际变量所存储的数据都是要放在内存中的。堆和栈是 Java 常用的内存存储结构,是内存中用来存储数据的地方。
- 栈:主要用来存放方法中定义的基本类型变量(例如`int`、`double`等)和引用类型变量(比如