【Java|基础篇】类和对象

这篇具有很好参考价值的文章主要介绍了【Java|基础篇】类和对象。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 前言

本篇文章主要讲解了下面三个问题

  • 类的定义和实例化
  • 构造方法
  • this关键字

2. 什么是面向对象

众所周知面向过程和面向对象是两种重要的编程思想,而Java是属于面向对象一类的语言.面向对象(Object Oriented Programming,简称 “oop”).
面向对象有三大特性:封装 继承和多态.这些内容后面会详细介绍.
在面向对象的世界里,一切皆为对象。对象就是问题中面向对象是解决问题的一种思想,主要依靠对象之间的交互完成一件事情.,因此在Java中,我们是对一个一个的对象进行的操作.通过实例化对象,调用对象的方法实现相应的功能.面向对象中,我们不必关注对象是如何实现相应的功能的.

例如有一个空调,空调可以进行室内温度的调节(制热或制冷),除湿等功能.这里空调就是一个对象,我们只需要调用空调的制热制冷等功能,就可以实现我们想要的结果.

3. 类的定义

类是用来对一个实体(对象)来进行描述的.类的定义要使用class关键字

// 语法格式为:
class 类名{
	// 成员变量
	// 成员方法
}

与上述的空调为例,我们要通过定义空调类来描述空调这个对象.空调有颜色,尺寸和型号等信息,空调有制冷制热等功能.
定义空调这个类:

class AirConditioner{
	// 成员变量
    String colour; // 颜色
    double size; // 尺寸
    String model; // 型号
	// 成员方法
    void heating(){
        System.out.println("开启制热功能");
    }
    void refrigeration(){
        System.out.println("开启制冷功能");
    }
}

定义类时,类的成员变量和成员方法可以根据需求进行定义. 下面讲解中的类皆是上述的这个空调类

4. 类的实例化

定义类对象之后,我们要如何使用类呢? 这就需要去进行类的实例化.定义类就相当于在计算机中定义了一种新的类型.用类类型创建对象的过程,称为类的实例化.使用new关键字进行类的实例化

// 语法
类名 对象名 = new 类名();

例如

    public static void main(String[] args) {
    	// 类名 对象名 = new 类名(); 
        AirConditioner airConditioner = new AirConditioner();
    }

实例化好类对象之后,我们可以通过 实例化对象的对象名加.的方式进行类的成员变量和成员方法的访问.

    public static void main(String[] args) {
        AirConditioner airConditioner = new AirConditioner();
        System.out.println("颜色: "+ airConditioner.colour);
        System.out.println("尺寸: "+ airConditioner.size);
        System.out.println("型号: "+ airConditioner.model);
        airConditioner.heating();
        airConditioner.refrigeration();
    }
    // 输出结果:
    // 颜色: null
	// 尺寸: 0.0
	// 型号: null
	// 开启制热功能
	// 开启制冷功能

这里需要注意在main方法中,如果定义了变量,而不进行初始化,就使用时是会报错的.
例如:
【Java|基础篇】类和对象
【Java|基础篇】类和对象
但是类中的成员变量则不会出现这个问题,类中的成员变量是有默认值的.
基本数据类型:

数据类型 默认值
int 0
short 0
long 0
byte 0
float 0.0f
double 0.0
char /u0000
boolean false

注:引用数据类型的默认值为null.

既然可以通过实例对象的对象名+.的方式访问对象的成员变量,就可以通过这种方式来初始化对象的成员变量.
例如:

    public static void main(String[] args) {
        AirConditioner airConditioner = new AirConditioner();
        airConditioner.colour = "白色";
        System.out.println("颜色: "+ airConditioner.colour);
    }
    // 输出结果:
    // 颜色: 白色

类可以理解为是一个"模型". 同一个类可以创建多个实例对象
例如:

    public static void main(String[] args) {
        AirConditioner airConditioner1 = new AirConditioner();
        AirConditioner airConditioner2 = new AirConditioner();
        AirConditioner airConditioner3 = new AirConditioner();
    }

5. 对象的构造及初始化

上面谈到我们可以通过实例对象的对象名+.的方式进行成员变量的初始化,但是如果类很多,实例的对象也很多,那么这个时候使用这种方式进行成员变量的初始化就会很麻烦. 因此Java给我们提供了一个叫做 "构造方法" 这样的方法帮我们对成员变量进行的初始化

构造方法: 也称为构造器,是一个特殊的成员方法,名字必须与类名相同,在创建对象时,由编译器自动调用,并且
在整个对象的生命周期内只调用一次

构造方法:

  • 名字与类名相同,没有返回值类型,设置为void也不行
  • 一般情况下使用public修饰
    在创建对象时由编译器自动调用,并且在对象的生命周期内只调用一次

【Java|基础篇】类和对象
上述就是默认的,无参的构造方法. 也是在没有构造方法时,编译器自动调用的构造方法
当我在构造方法中添加一个输出语句时:
【Java|基础篇】类和对象
可以看到,我并没有去调用构造方法,却还是输出了构造方法中的语句. 这也验证了构造方法会在实例化对象时自动调用. 因此我们可以传入参数让构造方法帮我们进行成员变量的初始化.

    public AirConditioner() {
        System.out.println("执行了 无参 的构造方法");
    }

    public AirConditioner(String a) {
        colour = a;
        System.out.println("执行了 一个参数 的构造方法");
    }

    public AirConditioner(String a, double b, String c) {
        colour = a;
        size = b;
        model = c;
        System.out.println("执行了 三个参数 的构造方法");
    }

【Java|基础篇】类和对象
在讲方法时,说到过"重载"这个概念.
方法的重载有三个注意的地方: 1. 方法的重载与返回值无关 2. 参数列表不能相同(形参的个数 顺序 类型等) 3.方法名必须相同
构造方法也是可以重载的.上述三个构造方法就构成了方法的重载.

使用构造方法,我们就可以对成员变量进行初始化了. 根据我们传入实参的数量,会自动调用对应参数的构造方法.
【Java|基础篇】类和对象

我们来打印一下这些类中的成员变量的内容.在IDEA中可以右键 选择Generate
【Java|基础篇】类和对象
选择这里的toString()
【Java|基础篇】类和对象
IDEA就会给我们生成好一个这样的方法.
【Java|基础篇】类和对象

接下来我们来打印实例好的实例对象
【Java|基础篇】类和对象

6. this引用

上述代码中,其实有一个问题,就是构造方法中的形参变量名是随便写的. 如果要初始化的成员变量非常多,且又不是按照顺序写的(doge) 是不是看着就很头疼.
【Java|基础篇】类和对象
这个时候可能有些聪明的同学就会说,把形参的名字设置成与成员变量相同不就可以了. 接下来我们来试试

    public AirConditioner(String colour, double size, String model) {
        colour = colour;
        size = size;
        model = model;
        System.out.println("执行了 三个参数 的构造方法");
    }

【Java|基础篇】类和对象
可以看到虽然是调用了构造方法,但是并没有进行初始化.
这个主要的原因就是在构造方法中,编译器并不知道谁给谁赋值?成员变量给成员变量?参数给参数?参数给成员变量?成员变量参数?
【Java|基础篇】类和对象
为了解决这个问题,Java可以给我们提供了一个"this"这样的关键字

this引用指向当前对象(成员方法运行时调用该成员方法的对象),在成员方法中所有成员变量的操作,都是通过该
引用去访问

对上述代码进行修改
【Java|基础篇】类和对象
【Java|基础篇】类和对象
此时就可以正确进行初始化完成了.
使用this之后就是告诉了编译器前面的是当前类的成员变量,而后面的是形参.

关于构造方法,也可以使用IDEA帮助我们自动生成. 与toString相同
【Java|基础篇】类和对象
【Java|基础篇】类和对象
可以选择想要初始化的成员变量进行对应构造方法的生成. 选择多个成员变量可以按住CTRL 进行选择.

this的特性

    1. this的类型:对应类类型引用,即哪个对象调用就是哪个对象的引用类型
    1. this只能在"成员方法"中使用
    1. 在"成员方法"中,this只能引用当前对象,不能再引用其他对象

补充: 在类中也可以进行初始化

class AirConditioner{
    String colour = "白色"; // 颜色
    double size; // 尺寸
    String model; // 型号

    public AirConditioner() {
        System.out.println("执行了 无参 的构造方法");
    }
}

【Java|基础篇】类和对象
这种初始化的方法通常会搭配 "final"关键字进行使用,后面会详细的介绍

7. 总结

文章到这里就结束了.文章的内容虽然不难,但是需要注意的地方还是特别多的.类和对象是学习Java中最基础的,务必要掌握

感谢你的观看!希望这篇文章能帮到你!
《Java专栏》在不断更新中,欢迎订阅!
“愿与君共勉,携手共进!”
【Java|基础篇】类和对象文章来源地址https://www.toymoban.com/news/detail-446643.html

到了这里,关于【Java|基础篇】类和对象的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java零基础手把手保姆级教程_类和对象(超详细)

    1.1 类和对象的理解 客观存在的事物皆为对象 ,所以我们也常常说万物皆对象。 类 类的理解 类是对现实生活中一类具有共同属性和行为的事物的抽象 类是对象的数据类型,类是具有相同属性和行为的一组对象的集合 简单理解:类就是对现实事物的一种描述 类的组成 属性:

    2024年02月05日
    浏览(45)
  • 【C++】类和对象(中)一篇文章带你学会六大默认成员函数

    如果一个类中什么成员都没有,简称为空类。 空类中真的什么都没有吗?并不是,任何类在什么都不写时,编译器会自动生成以下6个默认成员函数。 默认成员函数:用户没有显式实现,编译器会生成的成员函数称为默认成员函数。 对于下面的date类: 对于Date类,可以通过

    2024年03月12日
    浏览(47)
  • GitHub Copilot 使用攻略,本篇文章作者是GPT-3.5

    引言: 在软件开发领域,编写高质量的代码是开发者们的永恒追求。然而,传统的编码过程常常耗费大量时间和精力,而且在遇到复杂的问题时,开发者可能会面临困惑和不确定性。为了解决这些挑战,GitHub推出了一款强大的工具——GitHub Copilot,它利用人工智能技术提供智

    2024年02月16日
    浏览(58)
  • 【Java基础教程】(十五)面向对象篇 · 第九讲:抽象类和接口——定义、限制与应用的细节,初窥模板设计模式、工厂设计模式与代理设计模式~

    掌握 抽象类和接口的定义、使用、区别、常见设计模式; 抽象类是代码开发中的重要组成部分,利用抽象类可以明确地定义子类需要覆写的方法,这样相当于在语法程度上对子类进行了严格的定义限制,代码的开发也就更加标准。下面具体介绍抽象类的概念。 普通类可以直

    2024年02月16日
    浏览(46)
  • 【JavaSE】基础笔记 - 类和对象(上)

      目录 1、面向对象的初步认知 1.1、什么是面向对象 1.2、面向对象与面向过程  2. 类定义和使用 2.1、简单认识类 2.2、类的定义格式 2.3、自定义类举例说明 2.3.1、定义一个狗类  2.3.2、定义一个学生类 3、类的实例化 3.1、什么是实例化 3.2、类和对象的说明   Java是一门 纯面向

    2024年02月05日
    浏览(46)
  • 【C++基础(五)】类和对象(上)

    💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:C++初阶之路⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学习C++   🔝🔝 C语言是面向过程的语言 关注的是过程 而C++是面向对象的语言 关注的是对象 而类和对象就是面向对象的基础! C++为了兼容C语言 保留了原先的玩

    2024年02月16日
    浏览(40)
  • 【JavaSE】基础笔记 - 类和对象(下)

      目录 1、this引用 1.1、为什么要有this引用 1.2、什么是this引用 1.3、 this引用的特性 2、 对象的构造及初始化 2.1、 如何初始化对象 2.2、构造方法 2.2.1、概念   2.2.2、特性  2.3、默认初始化  2.4、就地初始化   上篇: 【JavaSE】基础笔记 - 类和对象(上)-CSDN博客 https://blo

    2024年02月04日
    浏览(49)
  • C++类和对象基础知识详解

    1.一切皆是对象。如下图: ·女人是一个对象 ·鞋子是一个对象 ·包包是一个对象 ·衣服是一个对象 ·裤子是一个对象 ·手链是一个对象 … 这里人这个对象,由鞋子、包包、衣服、 裤子、手链等对象组成。 3.每个对象都有: a)数据(描述对象的属性) b)函数(行为操作代码

    2023年04月12日
    浏览(43)
  • C++关于类和对象的基础语法

    目录 前言: 1.OO语言 2.类的定义 3.类的访问限定符与封装的引入 4.类的实例化 5.this指针(很重要) 6.this空指针问题 总结: 类的访问限定符与this指针很重要,在后面会一直用,下一章将会介绍六大默认成员函数。 1.OO语言 谈到类,就离不开对象,而像我们的c++,Java也

    2024年03月23日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包