Java中类与对象关系详讲

类与对象:

类:类是对某一类事物的抽象描述,而对象用于表示现实中该类事物的个体。

Java中类与对象关系详讲_第1张图片

   把上图玩具模型看作是一个类,玩具1-3号看作对象,便可以发现类和对象的关系。类是用于描述多个对象的共同特征,它是对象的模板,对象用于描述现实中的个体,它是类的实例。

类的定义:
     java中要想创建对象必须先创建一个类,类是对象的抽象,它用于描述一组对象的共同特征和行为,在类中可以定义成员变量和成员方法,成员变量用于描述队象的特征,成员方法用于描述对象的行为。
语法:

class 类名{
     成员变量;
     成员方法;
}
public class Person {
    String name;//定义string类型的变量
    int age;//int类型的变量
    public void speak(){//定义一个方法
        System.out.println("我的名字叫:" + name + "我今年" + age + "岁。");
    }
}

注意:定义在类中的变量称为成员变量,定义在方法中的变量叫做局部变量,如果在类中和方法中定义的成员变量和局部变量重名,这种情况下是允许的,此时方法中通过变量名访问到的是局部变量,而非成员变量。

public class Person {
    public static void main(String[] args) {
        Person p = new Person();//创建一个person对象
        p.name = "小明";//为对象属性赋值
        p.age = 25;//为对象属性赋值
        p.speak();//调用对象的speak()方法
    }
    String name;//定义string类型的变量
    int age;//int类型的变量
    public void speak(){//定义一个方法
        int age = 20;//定义一个局部变量
        System.out.println("我的名字叫:" + name + "我今年" + age + "岁。");
    }
}

输出结果:
在这里插入图片描述
对象的创建与使用:
     java中使用new关键字来创建对象,语法如下:

类名 对象名称 = new 类名();
例如:创建上面Person实例 Person p = new Person();
对象的成员如何访问:对象引用.对象成员 例如:p.name = xxx;p.age = xx;

Java中类与对象关系详讲_第2张图片Person p则声明一个Person类型的变量p,中的等号用于将Person对象在内存中的地址赋值给变量p,这样变量p便有了对象的引用。

public class Person {
    public static void main(String[] args) {
        Person p1 = new Person();//创建一个p1对象
        p1.name = "小明";//为对象属性赋值
        p1.age = 20;//为对象属性赋值
        p1.speak();//调用对象的speak()方法
        Person p2 = new Person();//创建一个p2对象
        p2.name = "小马";//为对象属性赋值
        p2.age = 25;//为对象属性赋值
        p2.speak();//调用对象的speak()方法
    }
    String name;//定义string类型的变量
    int age;//int类型的变量
    public void speak(){//定义一个方法
        System.out.println("我的名字叫:" + name + "我今年" + age + "岁。");
    }
}
输出结果:

在这里插入图片描述

public class Person {
    public static void main(String[] args) {
        Person p1 = new Person();//创建一个p1对象
        p1.name = "小明";//为对象属性赋值
        p1.age = 20;//为对象属性赋值
        p1.speak();//调用对象的speak()方法
        Person p2 = new Person();//创建一个p2对象
        p2.name = "小马";//为对象属性赋值
        //p2.age = 25;//为对象属性赋值
        p2.speak();//调用对象的speak()方法
    }
    String name;//定义string类型的变量
    int age;//int类型的变量
    public void speak(){//定义一个方法
        System.out.println("我的名字叫:" + name + "我今年" + age + "岁。");
    }
}
运行结果:

在这里插入图片描述
从运行结果可以看出对象p2的age输出为0,为什么会出现这种结果。这是因为在实例化对象时,Java虚拟机会自动为成员变量进行初始化,针对不同类型的成员变量,Java虚拟机会赋予不同的初始值。看下图:
Java中类与对象关系详讲_第3张图片

你可能感兴趣的:(Java基础知识,java)