• 【javaSE】初始类与对象



    一、什么是面向对象?

    Java是一门纯面向对象的语言(Object Oriented Program,简称OOP),在面向对象的世界里,一切皆为对象。面向对象是解决问题的一种思想,主要依靠对象之间的交互完成一件事情。用面向对象的思想来涉及程序,更符合人们对事物的认知,对于大型程序的设计、扩展以及维护都非常友好。
    对象的含义是指具体的某一个事物,即在现实生活中能够看得见摸得着的事物。在面向对象程序设计中,对象所指的是计算机系统中的某一个成分。在面向对象程序设计中,对象包含两个含义,其中一个是数据,另外一个是动作。对象则是数据和动作的结合体。对象不仅能够进行操作,同时还能够及时记录下操作结果。

    二、类的定义与使用

    • 概念

    是用来对一个实体(对象)来进行描述的,主要描述该实体(对象)具有哪些属性(外观尺寸等),哪些功能(用来干啥),描述完成后计算机就可以识别了。

    • 举例:

    比如:洗衣机是一个家具,在Java中可以将其看成是一个类别。
    属性:产品品牌,型号,产品重量,外观尺寸,颜色…
    功能:洗衣,烘干、定时…

    • 类的定义格式
      在这里插入图片描述

    类中包含的内容称为类的成员。属性主要是用来描述类的,称之为类的成员属性或者类成员变量。方法主要说明类具有哪些功能,称为类的成员方法。

    三、类和对象的关系

    • 定义

    是现实世界或思维世界中的实体在计算机中的反映,它将数据以及这些数据上的操作封装在一起。
    对象是具有类类型的变量。类和对象是面向对象编程技术中的最基本的概念。

    • 对象如何产生?

    用类类型创建对象的过程,称为类的实例化,在java中采用new关键字,配合类名来实例化对象。
    例:

    • new 关键字用于创建一个对象的实例.
    • 使用 . 来访问对象中的属性和方法.
    • 同一个类可以创建多个实例.
    • 实例化对象的格式
      在这里插入图片描述
    • 关系

    类是对象的抽象,而对象是类的具体实例。类是抽象的,不占用内存,而对象是具体的,占用存储空间。类是用于创建对象的蓝图,它是一个定义包括在特定类型的对象中的方法和变量的软件模板。
    做个比方:类实例化出对象就像现实中使用建筑设计图建造出房子,类就像是设计图,只设计出需要什么东西,但是并没有实体的建筑存在,同样类也只是一个设计,实例化出的对象才能实际存储数据,占用物理空间。

    四、this关键词

    • 定义:

    this引用指向当前对象(成员方法运行时调用该成员方法的对象),在成员方法中所有成员变量的操作,都是通过该引用去访问。只不过所有的操作对用户是透明的,即用户不需要来传递,编译器自动完成。
    当一个类的属性(成员变量)名与访问该属性的方法参数名相同时,则需要使用 this 关键字来访问类中的属性,以区分类的属性和方法中的参数。
    注意:this引用的是调用成员方法的对象。

    • this的用法

    this.属性名 :大部分时候,普通方法访问其他方法、成员变量时无须使用 this 前缀,但如果方法里有个局部变量和成员变量同名,但程序又需要在该方法里访问这个被覆盖的成员变量,则必须使用 this 前缀。
    this.方法名:让类中一个方法,访问该类里的另一个方法或实例变量。
    this( ):this( ) 用来访问本类的构造方法,括号中可以有参数,如果有参数就是调用指定的有参构造方法。
    注意:this( ) 不能在普通方法中使用,只能写在构造方法中。在构造方法中使用时,必须是第一条语句。

    五、对象的构造及初始化

    • 定义:

    构造方法是类的一种特殊方法,用来初始化类的一个新的对象,在创建对象(new 运算符)之后自动调用。Java 中的每个类都有一个默认的构造方法,并且可以有一个以上的构造方法。

    • 特点:

    (1)方法名必须与类名相同
    (2)可以有 0 个、1 个或多个参数
    (3)没有任何返回值,包括 void
    (4)默认返回类型就是对象类型本身
    (5)只能与 new 运算符结合使用
    注意:构造方法不能被 static、final、synchronized、abstract 和 native(类似于 abstract)修饰。构造方法用于初始化一个新对象,所以用 static 修饰没有意义。构造方法不能被子类继承,所以用 final 和 abstract 修饰没有意义。多个线程不会同时创建内存地址相同的同一个对象,所以用 synchronized 修饰没有必要。

    • 对象的初始化方式:

    (1)默认初始化:在堆上为 对象分配足够的存储空间,所有属性和方法都被设置成默认值(数字为 0,字符为 null,布尔为 false,而所有引用被设置成 null)
    例:public class Date {
    public int year; //默认初始值为0
    public string name;//null
    public boolean flag;//false
    }
    (2)就地初始化:在声明成员变量时,就直接给出了初始值。
    例:public class Date {
    public int year = 1900;
    public int month = 1;
    }


  • 相关阅读:
    MySQL数据库的回滚rollback是怎么做到的?
    python .gitignore文件配置
    SpringBoot使用@Value获取不到yaml中配置的值
    浪潮信息云峦服务器操作系统KeyarchOS体验与实践
    重要统计公式及概率分布图
    PMP考前梳理:敏捷知识的相关要点
    【数据结构】栈
    WebGIS(一):高德地图API-显示地图
    快速批量创建文件夹、文件的快捷键
    【推荐】web3.0的发展与研究资料合集
  • 原文地址:https://blog.csdn.net/weixin_50486535/article/details/127821050