JavaSE学习之--类和对象(一)

简介: JavaSE学习之--类和对象(一)

  💕粗缯大布裹生涯,腹有诗书气自华💕

作者:Mylvzi

文章主要内容:Java学习之--类和对象

类和对象

类的实例化:

1.什么叫做类的实例化

 利用类创建一个具体的对象就叫做类的实例化!

当我们创建了一个类,实际上就是创建了一个“自定义类型”(和C语言中的结构体类似),是一种新的类型。既然是类型,就和Int,char一样可以进行变量的创建。创建的变量是一种引用变量,变量内部存储的是创建对象的地址!

2.注意事项

1.类类似于结构体,是一种自定义类型,通过.操作符访问成员变量

2.类可以创建多个对象,比如此处还可以创建stu2,stu3.......

3.类:理解为图纸,不占用物理地址;但是通过图纸创建出房子的时候,房子(对象)占用物理地址。

this的引用

先来看两个问题:

正确代码:

// 创建一个学生类
class Stu{
    public String name;
    public String sex;
    public int age;
    // 所有对成员变量进行操作的地方都要添加this,代表是当前对象调用的方法!!!
    // this写在方法内部
    public void setStu(String name,String sex,int age) {
        this.name = name;
        this.sex = sex;
        this.age = age;
    }
    public void printStu() {
        System.out.println(this.name+" "+this.sex+" "+this.age);
    }
}
public class Test2 {
    public static void main(String[] args) {
        // 实例化一个stu1的对象
        Stu stu1 = new Stu();
        Stu stu2 = new Stu();
        Stu stu3 = new Stu();
        stu1.setStu("lvzi","nv",18);
        stu2.setStu("biandu","nan",19);
        stu3.setStu("栀子","nv",20);
        stu1.printStu();
        stu2.printStu();
        stu3.printStu();
    }
}

1.定义:

      this引用的作用就是告诉编译器我当前我调用的是哪个对象,对当前对象的成员变量进行操作!!!避免了很多可能出现的错误

2.注意事项:

1.this只能在成员方法内部使用。

2.this只能调用当前对象,不能再调用另一个对象

3.实际上,成员方法内部其实是有“对象”这个参数的,只不过一般被省略!!!

4.this是Java中的一个关键字,表示对象的引用

对象的构造和初始化

1.局部变量和成员变量的初始化

同时,如果我们想要对成员变量进行初始化,需要调用成员方法:

可是如果每次都需要调用方法来初始化对象是否过于麻烦?有没有其他方法可以初始化对象呢?答案是可以的,接下来就讲解初始化对象的一种特殊方法-->构造方法!!!

2.构造方法:

是一种用来初始化对象的特殊方法

注意事项 :

1.不需要写返回值

2.只负责初始化对象,并不负责给对象开辟空间

3.方法名必须和类名相同!!!

4.创建完对象,编译器会自动进入到构造方法内部(代码演示)

4.构造方法之间也可以构成重载 (带参数的构造方法和不带参数的构造方法之间构成重载)
// 带参数的构造方法
    public Stu(String name,String sex,int age) {
        this.name = name;
        this.sex= sex;
        this.age = age;
    }
// 利用带参数构造方法,只需在创建对象时传入参数即可
        // 编译器会进入到构造方法,帮助你初始化成员对象
        Stu stu1 = new Stu("绿子","女",18);
        stu1.printStu();
5.如果用户没有定义构造方法,编译器会自动创建一个无参的构造方法,这个默认的构造方法也可以初始化成员变量,只不过是利用默认值进行初始化的(解释了为什么字段可以不初始化也能通过编译)

6.如果本身就存在带参数的构造方法,编译器并不会自动创建一个构造方法!所以,在有带参数的构造方法时,实际参数必须传参!!!

7.通过this调用其他构造方法(简化初始化代码)

注意:

1.this必须写在第一行!!!不是第一行就无法通过编译

2.不能呈环!!!

3.绝大多数情况下构造方法使用public来修饰,特殊情况下使用private修饰

4.this是一种引用,哪个对象调用,就引用哪个对象,this此时就是一种引用数据类型,存储的是指向对象的地址!!!

8.快速创建构造方法 (常用)

总结:所谓的构造方法就是一种用来初始化对象的特殊方法!!!方法名必须和类名相同,通过带参数的构造方法可以快速进行对象的初始化!!!

JavaSE学习之--类和对象(二)+https://developer.aliyun.com/article/1413484

目录
相关文章
|
11月前
|
Java
在Java中如何实现接口?
实现接口是 Java 编程中的一个重要环节,它有助于提高代码的规范性、可扩展性和复用性。通过正确地实现接口,可以使代码更加灵活、易于维护和扩展。
631 64
|
6月前
|
关系型数据库 MySQL 数据库
《深入探讨XGBoost与MySQL数据交互:细节与洞察》
在数据驱动时代,XGBoost与MySQL的数据交互至关重要。本文探讨了两者结合时的多个关键点:**数据格式适配**(如文本编码、日期处理)、**性能考量**(分批读取、索引优化)、**数据一致性与完整性**(事务管理、异常回滚)、**数据安全与权限管理**(授权访问、加密传输)、**数据更新与实时性**(触发器或轮询机制)以及**连接管理与稳定性**(连接池技术、重试机制)。全面处理这些方面,可实现高效、稳定且安全的数据交互,为数据分析和机器学习提供可靠支持。
134 28
|
8月前
|
人工智能 大数据 物联网
申报开启|2025年阿里云协同育人项目申报指南
阿里云启动2025年协同育人项目申报,支持高校教学内容和课程体系改革及实践基地建设。项目涵盖人工智能通识教育、AIGC设计等领域,提供资金、云计算资源和技术培训等支持。申报截止至2025年2月28日,面向全国本科高校教师,旨在深化产教融合,共育创新人才。详情及流程见官网。
|
12月前
|
存储 Go 文件存储
M.2移动硬盘打造Win To Go系统:高效分区存储文件全攻略
【10月更文挑战第12天】本文详细介绍了如何使用M.2移动硬盘制作Win To Go系统。首先,需准备合适容量与接口类型的M.2硬盘及硬盘盒,并获取Windows镜像文件和分区工具。接着,通过Rufus软件将镜像写入硬盘。文中还提供了分区策略,包括系统分区(约80-120GB)、软件分区(根据需求设定)和数据分区(剩余空间),并指导如何使用DiskGenius或Windows自带工具进行分区。最后,强调了对各分区文件的有效管理和定期备份的重要性。
814 3
|
人工智能 搜索推荐 安全
脑机接口技术:提升人机交互的前沿探索
【9月更文挑战第29天】脑机接口(BCI)技术借助人工智能与神经科学的进步,实现了人脑与外部设备的直接连接,开辟了人机交互新纪元。该技术通过捕捉并转化神经信号,使用户能直接控制设备或接收反馈,已在医疗、教育、娱乐等领域展现巨大潜力。例如,在医疗上,它帮助患者恢复运动和语言功能;在教育中,实现个性化学习;在娱乐领域,则提供沉浸式体验。尽管面临技术、伦理及隐私挑战,但其发展前景广阔,有望革新生活方式和社会结构。
|
NoSQL Redis
Redis性能优化问题之禁用内存大页,如何解决
Redis性能优化问题之禁用内存大页,如何解决
|
存储 Java 关系型数据库
支持私有部署的云端存储双链笔记软件
Blossom —— 一个支持私有部署的云端双链笔记软件,将笔记,图片,个人计划安排保存在自己的服务器中。
274 2
支持私有部署的云端存储双链笔记软件
|
资源调度 API 计算机视觉
【OpenCV】—非线性滤波:中值滤波、双边滤波
【OpenCV】—非线性滤波:中值滤波、双边滤波
272 3
|
前端开发 JavaScript Java
【面试题精讲】什么是websocket?如何与前端通信?
【面试题精讲】什么是websocket?如何与前端通信?
|
机器学习/深度学习 人工智能 Java
软件开发者必读!2024年30大趋势提前曝光!
软件是科技行业的基础。从智能手机到复杂的企业系统,软件是推动这些技术的核心。在探索数字时代的过程中,了解软件开发的趋势非常重要。人工智能、机器学习、物联网等技术的快速发展对软件开发行业产生了巨大影响。本文旨在通过30个数据汇总,帮助读者们初步了解2024年软件开发领域的新趋势。