对象的使用格式
创建对象:
```java
类名 对象名 = new 类名();//Student s = new Student();//new Student();叫对象,s对象名变量名,类,类型。
对象名存的是对象的地址值(数组名存的是数组地址值),通过地址值就可以找到对象,
int i = 666;//基本数据类型存的是值
Student s = ...//引用数据类型存的是地址值,就是new出来的东西,在堆内存,有地址值,s存的是对象的地址值
//通过地址值就可以找到对象(内存里面存有变量和方法数据),就可以使用对象里面的变量和方法,对象名.
```
使用对象访问类中的成员:
```java
对象名.成员变量;//对象名,存的是对象的地址值,对象是new出来的,在堆内存中,存的对象里面的变量和方法
对象名.成员方法();//.读作里面的,对象名,哪里不会点,调用使用(拿到得到)对象里面变量和方法
```
成员变量:堆内存,属于对象,dui,堆内存
局部变量:栈内存,暂时,栈内存
每调用一个方法,方法需进入栈内存
this
this的含义,this关键字代表对象的引用存的是调用方法的对象的地址值,通过地址值找到地对象,就可以点来调用拿到对象里面的成员变量给成员变量赋值
this代表所在类的当前对象的引用(地址值),即对象自己的引用(对象名)。
> 记住 :方法被哪个对象调用,方法中的this就代表那个对象。即谁在调用,this就代表谁。
public class Student { private String name;//成员变量属于对象里面的 private int age; public void setName(String name) { //name = name; this.name = name;//this,地址值找到对象.里面的成员变量 } }
> 小贴士:方法中只有一个变量名时,默认也是使用 `this` 修饰,可以省略不写。
构造方法,创建对象一定会调用到new关键字构造方法,跑到构造方法{}里面,比如给对象的成员变量进行赋值
当一个对象被创建时候,构造方法用来初始化该对象,给对象的成员变量赋初始值。
> 小贴士:无论你是否自定义构造方法,所有的类都有构造方法,因为Java自动提供了一个无参数构造方法,一旦自己定义了构造方法,Java自动提供的默认无参数构造方法就会失效。
### 构造方法(构造器,构造对象用的东西)的定义格式
```java
修饰符 构造方法名(参数列表){
// 方法体
}
```
**构造方法的特点:方法名与它所在的类名相同。它没有返回值,所以不需要返回值类型,甚至不需要void,但是可以return;结束构造方法回到main方法的出口结束程序//记忆**。使用构造方法后,代码如下:
public class Student { private String name; private int age; // 无参数构造方法 public Student() {} // 有参数构造方法 public Student(String name,int age) {//构造方法作用创建对象调用到构造方法,我就可以里面给对象的成员变量进行赋值,初始化 this.name = name; this.age = age; }
注意事项//记忆,创建对象一定会调用到new关键字构造方法
标准代码——JavaBean-标准类
public class ClassName{ //私有成员变量 //构造方法 //无参构造方法【必须】 //有参构造方法【建议】 //成员方法 //getXxx() //setXxx() }
编写符合`JavaBean` 规范的类,以学生类为例,标准代码如下:
```java
public class Student { //私有成员变量 private String name; private int age; //构造方法//自动生成,idea快捷键alt insert public Student() {} public Student(String name,int age) { this.name = name; this.age = age; } //成员方法,get和set方法 public void setName(String name) { this.name = name; } public String getName() { return name; } publicvoid setAge(int age) { this.age = age; } publicint getAge() { return age; } }