【Java06】Java中的类与对象

1. 类和对象

Java中的类模版如下:

java 复制代码
[修饰符] class 类名
{
  0~n个构造器;
  0~n个成员变量;
  0~n个成员方法;
}
  • 构造器是类创建对象的根本途径。如果没有显式定义构造器,系统会默认提供一个。
  • 成员变量、成员方法 的定义和C++类似,只不过多了修饰符

Java中的static关键字

Java中的static关键字用来修饰方法、成员变量,表示该成员属于类本身,而不属于具体的某个实例 。因此也把static修饰的方法或变量称为类方法、类变量 。不用static修饰的成员方法或变量称为实例方法、实例变量

虽然static翻译成"静态",但其实真正作用就是区分成员变量、方法、内部类、初始化块这4中成员到底属于类本身还是属于单一实例。

一个典型的类定义(默认构造器):

java 复制代码
public class Person
{
  public String name;
  public int age;
  public void say(String content)
  {
    System.out.println(content);
  }
}

Java中类的作用

  • 定义类的引用变量;
  • 创建对象;
  • 调用类的方法或变量。

2. 对象的产生

通过构造器,利用new关键字调用构造器来创建这个类的实例:

java 复制代码
Person p; // 定义类的引用变量
p = new Person(); // 通过new调用Person的构造器,生成一个Person的实例,将其"赋给"p这个变量

// 简化写法
var p = new Person();

访问类的成员:

java 复制代码
p.name = "王五";
p.say("Java很简单");

3. 对象的本质

Java中对象(实例)的本质,是一个引用变量,和C++,以及之前介绍的数组引用变量类似。

实例化(生成)一个对象的过程实际上分两步:

  1. 首先调用类的构造器,在堆上分配内存,并进行初始化;
  2. 将这个对象(内存块)的地址赋给类的引用变量,或者说,让一个指针指向这个对象的内存。

类的引用变量位于栈内存中,指向堆内存中的对象。

因此,类似地,两个对象的赋值,实际上是让两个引用变量指向同一个对象:

java 复制代码
var p2 = p;

类似地,当没有任何指针指向这个对象,Java的垃圾回收机制就会启动。

相关推荐
2601_962071572 小时前
【Java报错已解决】org.springframework.beans.factory.BeanCreationException
java·开发语言
zww89491113 小时前
酒馆预约系统开发实战:从需求分析到上线全流程指南
java·eclipse
淡海水3 小时前
07-04-并发-ConcurrentBag-T-工作窃取WorkStealing算法
开发语言·算法·c#·bag·concurrent·workstealing
CS_Zero4 小时前
C语言sizeof是函数吗?
c语言·开发语言
-今昭-5 小时前
《V2V 迁移实战:将 VMware 虚拟机转为 OpenStack 可用 Glance qcow2 镜像》
开发语言·python
zww89491115 小时前
匿名树洞系统开发实战:从需求分析到部署指南
java·eclipse
黑马程序员毕设7 小时前
基于Java的医院药品管理系统的优化设计与实现
java·开发语言·spring boot·小程序·架构·课程设计·毕设
木井巳7 小时前
【BFS/DFS 解决 FloodFill 算法】太平洋大西洋水流问题
java·算法·leetcode·深度优先·广度优先·宽度优先·推荐算法
白山编程大哥7 小时前
Java 集合算法:从排序、查找到底层原理的实战指南
java·python·算法
_Twink1e7 小时前
openJiuwen 实训营 Day 1 · WorkSwarm 入门教程
开发语言·c++·openjiuwen