一、类与对象的概念
类(class):是抽象的概念集合,表示的是一个共性的产物,类之中定义的是属性和行为(方法)。
对象(object):对象是一种个性的表示,表示一个独立的个体,每个对象拥有自己独立的属性,依靠属性来区分不同对象。
类与对象的关系:类是对象的模板,对象是类的实例。类只有通过对象才可以使用,而在开发之中应该先产生类,之后再产生对象。类不能直接使用,对象是可以直接使用的。类是抽象的,不占用内存,而对象是具体的,占用存储空间。类是用于创建对象的蓝图,它是一个定义包括在特定类型的对象中的方法和变量的软件模板。
二、类与对象的定义和应用
类类型声明
Java中的类用关键字class定义,其语法格式如下:
class 类名{
public:公用的数据和成员函数
protected:保护的数据和成员函数
private:私有的数据和成员函数
}
举例:定义一个Person类
class Person{
int age=18; //全局变量
public void run(){ //定义run方法
System.out.println("跑得快");
}
}
定义对象方法
类声明完成后无法直接使用,需要依靠对象。定义对象需要使用new关键字,创建对象并在堆内存开辟内存空间,其格式如下:
类名称 对象名称 = new 类名称 () ;
当一个实例化对象产生之后,可以按照如下的方式进行类的操作:
对象.属性:表示调用类之中的属性;
对象.方法():表示调用类之中的方法。
举例:使用对象调用类
class Person{
int age=18; //全局变量
public void run(){ //定义run方法
int num=180;
System.out.println("年龄"+age+",身高"+num);
}
}
public class Test{
public static void main(String[] args){
Person per = new Person(); //声明并实例化对象
per.age = 20; //操作属性内容
per.run(); //调用类的run方法
}
}
运行结果为:
年龄20,身高180
三、类与对象调用原理
创建两个java文件,其代码如上面的举例所示,根据上图分析其运行步骤为:
1、javac将Test.java源文件编译成.class字节码文件
2、Test.class字节码文件进入方法区
3、Test中的main方法入栈
4、javac将Person.java源文件编译成.class字节码文件
5、Person.class字节码文件进入方法区
6、以类为模板创建对象(在堆内存中开辟一块空间)
7、创建一个叫做per的句柄,并把对象的地址传递给它
8、调用run方法,给num传递180
9、run函数调用完成,出栈
10、main函数调用完成,出栈