类与对象的关系
类是对某一类事物的抽象描述,而对象表示的是现实中这类事物的个体。
譬如水果就相当于类,而苹果,葡萄,香蕉等等即相当于对象。
类的定义
类是对象的抽象,它用来描述对象的共同特征和行为。
类可以定义成员变量和成员方法。
成员变量用于描述成员特征,也被称为属性。
成员方法用于描述成员行为,简称为方法。
class 类名称 {
成员变量 (属性) ;
成员行为 (方法) ;
}
class Preson{
//成员变量(属性)
int age;
//成员属性(方法)
void speak(){
System.out.println("大家好,我今年"+age+"岁");
}
}
对象的创建和使用
创建对象(实例化对象)
类名 对象名称 = new 类名();
例如:
Person p = new Person();
其中“new Person()”是在person类中创建实例对象,“p”是声明person类的对象类型,而“=”是把所创建的对象的地址赋值给“p”中。
这样“p”就可以访问所有的对象成员。
格式: 对象应用.对象成员
例如:
class Text{
public static void main(String[] args){
Person p1 = new Person();//创建第一个person类型的对象p1(创建“p1”为对象引用)
Person p2 = new Person();//创建第二个person类型的对象p2(创建“p2”为对象引用)
p1.age = 20;//为对象“p1”的属性age赋值
p1.speak();//调用对象“p1”的speak()方法
p2.speak();//调用对象“p2”的speak()方法
}
}
因为对象p2的属性age没有赋值,他的值就会被系统初始化。
如果创建的对象没有被使用则这个对象,他将成为垃圾不能再次使用。
例如:
1:
{
Person p1 = new person();
......
}
当程序运行时,p1将超出作用域会被销毁,p1也就没有被使用从而变成垃圾。
2:
class Person{
int age;
void speak() {
System.out.println("大家好我今年岁");
}
}
class Text {
public static void main(String[] args) {
Person p2 = new Person();
p2.speak();
p2 = null;
p2.speak();
}
}
此程序调用了两遍speak();函数却只出现了一次结果。
因为如下图红框,他将p2的值赋为null,结果第二次调用speak()函数时抛出空指针异常。
在Java中null是一个特殊变量,当将p2的值赋为null,p2变量就不再指向任何一个对象,被p2所引用的person对象失去引用作用,变成垃圾。