Java对象与类概述
对象与类
类的基本组成
让我们先来看一个简单的结构较为简单的类
class Person{
//属性
private String name;
private int age;
//构造器
public Person(String name, int age) {
this.age = age;
this.name = name;
}
//默认构造器
public Person(){
}
//方法1
public String getName() {
return name;
}
//方法2
public void setName(String name) {
this.name = name;
}
//方法3
public int getAge() {
return age;
}
//方法4
public void setAge(int age) {
this.age = age;
}
//方法5
public void eat(){
System.out.println("我会吃饭")
}
}
类的基本组成有:属性、方法、构造器。
**属性:**就像一个人有具体的年龄、姓名一样,类也拥有他的属性,即类中存储的具体数据。
**方法:**你可以理解为类的行为。就像一个人能够进行吃饭、喝水、运动等动作,一个类也具有他的行为,即操作数据的过程。
**构造器:**用于创建类的实例即面向对象程序设计的主角——对象
对象的创建以及关于对象的理解
任何类都有一个构造器,在默认情况下类的构造器是一个无参的、无方法体的构造器。而任何对象的创建都需要使用构造器实现。下面便是一个简单的对象创建的过程。
Person xiaoHong = new Person("小红", 18);
Person liLei = new Person("李雷", 20);
这样便创建了两个个Person类的对象。
那么什么是对象呢?
我们称类的实例为对象。就像我们都是人类,而”人类“就相当于是我们定义的一个Person类,它将拥有人类属性和行为的事物都归结为一个类。”人类“是我们所有人的总称,而对象就好比是我们一个个鲜活的人,每个人的姓名、年龄都可能不相同,但我们都能够吃饭,能够喝水。对象也是如此,每一个对象都拥有类中定义的属性和方法。但每个对象的属性都可能不相同。
对象的内存解析
这里我们只需要先关注三个部分
**堆(Heap):**此内存区域的唯一功能是存放对象实例,几乎所有的对象实例都在这里分配内存。所有的对象实例以及数组都要在堆上分配内存空间。
**虚拟机栈(Stack):**这里所说的栈是指虚拟机栈。虚拟机栈的功能是存储局部变量。局部变量表存放了编译可知长度的各个基本数据类型(boolean、byte、char、short、int、float、long、double)、对象引用(reference类型,它是对象在堆内存的首地址)。方法执行完毕时自动释放。
**方法区:**用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。
参考资料:https://www.bilibili.com/video/BV1Kb411W75N