文章目录
- 👏类和对象的概念
- 什么是类?
- 什么是对象?
- 🥝构造方法
- 如何创建一个对象?
- 🥝对象内存布局
- 完整应用 - 编写一个类:人,其具备年龄、性别、姓名等基础属性,并实例化一个人员对象
- 注意事项⚠️
- 1.定义类有什么需要注意的?
- 2.成员变量有什么需要注意的?
👏类和对象的概念
什么是类?
类(class)是对一类事务的抽象描述,它定义了这类事物具有共同的属性(数据)和行为(方法)。
比如:“汽车”可以看作一个类:
- 属性:颜色、品牌、排量、价格(这些都是所有汽车都具备的特征)
- 行为:启动、加速、刹车、鸣笛(这些都是所有汽车都能执行的操作)
类只规定了事物的特征和能力,本身并不存在实体,在Java中类的定义需要使用class关键字,基本结构如下:
public class 类名 {// 属性(成员变量)数据类型 属性名1;数据类型 属性名2;// 行为(成员方法)返回值类型 方法名1(参数列表) {// 方法体}返回值类型 方法名2(参数列表) {// 方法体} }
什么是对象?
对象(Object)是类的具体实例,是根据类创建的“实体”。如果类是学生,那么 “张三(学号:2023001,年龄:18)” 就是一个对象。
对象具有唯一的标识(内存地址)、状态(属性的具体值)一张图解释类和对象的关系:
通过上图来创建一个简单的类来理解下Java中类的定义:public class Dog {String breed;int size;String colour;int age;void eat() {}void run() {}void sleep(){}void name(){} }
一个类可以包含以下类型变量:
- 局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。
- 成员变量.:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。
- 类变量:类变量也声明在类中,方法体之外,但必须声明为 static 类型。
一个类可以拥有多个方法,在上面的例子中:eat()、run()、sleep() 和 name() 都是 Dog 类的方法
🥝构造方法
每个类都有自己的构造方法,如果没有显示地为类定义构造方法,Java编译器将会为该类提供一个默认构造方法。
而在创建一个对象的时候,至少要调用一个构造方法。构造方法的名称必须与类名相同,一个类可以有多个构造方法。
下面是一个构造方法示例:public class Puppy{public Puppy(){}public Puppy(String name){// 这个构造器仅有一个参数:name} }
如何创建一个对象?
对象是根据类创建的。在Java中,使用关键字 new 来创建一个新的对象。创建对象需要以下三步:
- 声明:声明一个对象,包括对象名称和对象类型。
- 实例化:使用关键字 new 来创建一个对象。
- 初始化:使用 new 创建对象时,会调用构造方法初始化对象。 下面是一个创建对象的例子:
public class Puppy{public Puppy(String name){//这个构造器仅有一个参数:nameSystem.out.println("小狗的名字是 : " + name ); }public static void main(String[] args){// 下面的语句将创建一个Puppy对象Puppy myPuppy = new Puppy( "tommy" );} }
🥝对象内存布局
Cat类:
public class Cat {String name;String color;int age; }
图片左边为执行的操作,右边为new的对象在内存中的存在形式:
说明:age为int类型,属于基本数据类型,直接存放在所new对象的堆中;而age和color都和数组一样,属于常量引用类型,所以new对象后在堆中存放的是对应常量池的地址完整应用 - 编写一个类:人,其具备年龄、性别、姓名等基础属性,并实例化一个人员对象
class Person {int age;String name;String gender;public void sleep() {System.out.println(name + "正在睡觉");}public void show() {System.out.println(name + " " + age + " " + gender);} }public class Test {public static void main(String[] args){Person p = new Person();p.name="林七夜";p.age=20;p.gender="男";p.sleep();p.show();} }
运行结果:
林七夜正在睡觉 林七夜 20 男
注意事项⚠️
1.定义类有什么需要注意的?
- 类名首字母建议大写、英文、有意义,满足驼峰模式,不能用关键字
- 一个代码文件中可以定义多个类,但是只能有一个类是public修饰的,public修饰的类名必须是Java文件的文件名称
2.成员变量有什么需要注意的?
- 成员变量的完整定义格式是:修饰符 数据类型 变量名称 = 初始化值 ;
- 一般无需指定初始化值
如果我的内容对你有帮助,请 点赞 , 评论 , 收藏 。创作不易,大家的支持就是我坚持下去的动力!