1.1 创建对象
1. 第一步声明变量,type可以是类,接口,或者数组type objectName;
- 实例化
先用new运算符为对象分配空间,再初始化
String name;
name = new String("Hello World");
1.2 空对象
一个引用对象没有通过new分配内存空间,就是空对象.Java使用关键字null.表示空对象.示例代码如下String name = null;
name = "Hello World";
引用变量默认值是null,当试图调用一个空对象的实例变量或实例方法,会空指针异常
String name = null;
System.out.println(name);
int len = name.length(); //这行错误
程序员应避免调用空对象的成员变量和方法 null.length() X
1.3 构造方法
使用表达式new String("Hello World"),其中String("Hello World") 是调用构造方法.用来初始化类的实例变量,这个就是构造方法,它再创建对象(new)之后使用.java构造特点:
- 构造方法名必须与类名相同
- 构造方法名没有任何返回值,包括void
- 构造方法只能与new运算符结合使用
示例代码:
//矩形类
public class Rectangle {
int width;
int height;
int area;
//构造方法
public Rectangle(int w, int h) {
width = w;
height = h;
area = getArea(w,h)
}
}
默认构造方法
有的类代码中没有构造方法,还是可以调用无参数的构造方法创建对象//矩形类
public class Rectangle {
int width;
int height;
int area;
}
创建对象
Rectangle rec = new Rectangle();
构造方法重载
一个类中可以有多个构造方法,它们有相同的名字(即类名),参数列表不同,所以它们之间一定是重载关系package lidiudiu;
import java.util.Date;
public class Person {
private String name;
private int age;
private Date birthDate;
public Person(String n,int a, Date d) {
name = n;
age = a;
birthDate = d;
}
public Person(String n, int a) {
name = n;
age = a;
}
public Person(String n) {
name = n;
}
}
当有准确信息时可以用第一个构造方法,只有姓名和年龄时用第二个,只有姓名信息可用最后一个构造方法创建Person对象
构造方法封装
构造方法也可以进行封装,访问级别和普通方法一样public Person (String n , int a, Date d) //公有级别封装
Person (String n, int a) //默认级别限制
protected Person (String n, Date d) //保护级别限制
private Person(String n) //私有级别限制
默认级别限制: 只能在同一个包中访问
保护级别限制: 在同一个包中和默认级别相同,在不同包里可以被子类继承
私有级别限制: 只能在当前类中使用,不允许在外边访问
1.4 this关键字
前面章节中使用过this关键字,this指向对象本身,一个类可以通过this来获得一个代表它自身的对象变量.this使用三种情况.
- 调用实例变量
- 调用实例方法
- 调用其它构造方法