Java 超详细讲解类的定义方式和对象的实例化

 更新时间:2022年03月31日 10:13:22   作者:Gremmie102  
Java是一门纯面向对象的语言(Object Oriented Program,继承OOP),在面对对象的世界里面,一切皆为对象。面向对象是解决问题的一种思想,主要依靠对象之间的交互完成一件事情

1.面对对象的初步认识

1.1什么是面向对象

image.png

用面向对象的思想来涉及程序,更符合人们对事物的认知,对于大型程序的设计、扩展以及维护都非常友好。

1.2面向对象与面向过程

举一个买手机的例子

image.png

以面向对象的方式来处理买手机这件事的话,我们就不需要关注买手机的过程,具体手机怎么买,如何到手,用户不用去关心,只需要告诉小秘书,然后拿手机即可,这些过程是通过对象之间的交互来完成的。

⚠️:面向过程和面向对象并不是一门语言,而是解决问题的方法,没有好坏之分

2.类的定义与使用

面向对象程序设计关注的是对象

2.1简单认识类

**类是用来对一个实体(对象)来进行描述的,**主要描述该实体(对象)具体由哪些属性(外观,作用),哪些功能(用来干啥),描述完成之后计算机就可以识别了。比如,我喜欢的女生类型是:性别为女,身高大于0,会吃饭。这就是一种类型,那么上帝视角下的我就可以通过这个类来实例化出一个具体的对象,它在堆上。现实生活中就是我根据这个类去找对象,创造对象。 那么在Java语言中,如何对上述的洗衣机类来进行定义呢?

2.2 类的定义格式

image.png

在Java中定义类时需要用到class关键字

//创建类
class ClassName{
    field;//字段(属性)或者成员变量
    method;//行为或者成员方法
}

class为定义类的关键字,ClassName为类的名字,{}中的东西为类的主体

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

class MyGirlFriend{
    public String name;
    public String sex;//性别
    public int age;
    public int height;
    public String favouriteFood;
    public int hairLength;
    
    public void study(){
        System.out.println(this.name+"正在学习");
    }
}

采用Java语言将洗衣机类在计算机定义中完成,经过javac编译后形成.class,在JVM的基础上计算机就可以识别了。

⚠️注意事项:

  • 类名注意要采用大驼峰定义
  • 成员前写法统一为public,后面会详细解释为什么这么做
  • **此处写的方法不带static关键字.**后面会详细解释

⚠️注意事项:

  • 一般一个文件当中只定义一个类
  • main方法所在的类一般要使用public修饰(注意:Eclipse默认会在public修饰的类中找main方法)
  • public修饰的类必须要和文件名相同
  • 不要轻易修改public修饰的类的名称。

3.类的实例化

3.1什么是实例化?

定义了一个类,就相当于在计算机中定义了一种新的类型,与int double 类似,但int 和 double 是Java自带的内置类型,而类是用户自定义了一个新的类型,比如MyGirlFriend,是一个类(一种新定义的类型)有了这些自定义的类型之后,就可以使用这些类来定义实例(或者称为对象)。

image.png

这里我们实现一个日期类

/**
 * @Author 12629
 * @Date 2022/3/25 19:43
 * @Description: 实现一个日期类
 */
public class MyDate {

    public int year;
    public int month;
    public int day;

    /**
     * 设置日期:
     */
    public void setDate(int year,int month,int day) {
        this.year = year;
        this.month = month ;
        this.day = day;
    }

    public void printDate() {
        System.out.println("年:"+this.year+"月:"+this.month+"日:"+this.day);
    }

    public static void main(String[] args) {

        // this.printDate();

        MyDate myDate = new MyDate();

        myDate.setDate(2022,3,25);

        myDate.printDate();

        MyDate myDate2 = new MyDate();

        myDate2.setDate(2022,3,28);
        myDate2.printDate();

    }
}

⚠️注意事项:

  • new关键字用于创建一个对象的实例
  • 使用.来访问对象中的属性和方法
  • 同一个类可以创建多个实例

3.2重点笔记

  • 类只是一个模型一样的东西,用来对一个实体进行描述,限定了类有哪些成员。
  • 类是一种自定义的类型
  • 一个类可以实例化出多个对象,实例化出的对象 占用了实际的物理空间,存储类成员变量

image.png

  • 例子:类实例化出对象就像现实中使用建筑设计图建造出房子,类就像是设计图
  • 当成员变量没有赋初值的时候,每个成员变量都是他所对应的0值,引用类型对应null,bollean对应false,char对应’\u0000’即为空格

总结

image.png

image.png

希望能帮到大家 感谢阅读~

到此这篇关于Java 超详细讲解类的定义方式和对象的实例化的文章就介绍到这了,更多相关Java 类的定义内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • HTTPClient如何在Springboot中封装工具类

    HTTPClient如何在Springboot中封装工具类

    这篇文章主要介绍了HTTPClient如何在Springboot中封装工具类问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • java并发编程工具类PriorityBlockingQueue优先级队列

    java并发编程工具类PriorityBlockingQueue优先级队列

    这篇文章主要为大家介绍了java并发编程工具类PriorityBlockingQueue优先级队列的方法示例应用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2022-03-03
  • Spring Boot实现发送邮件

    Spring Boot实现发送邮件

    这篇文章主要为大家详细介绍了Spring Boot实现发送邮件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • 简单操作实现Java jsp servlet文件上传过程解析

    简单操作实现Java jsp servlet文件上传过程解析

    这篇文章主要介绍了简单操作实现Java jsp servlet文件上传过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • java System类和Arrays类详解

    java System类和Arrays类详解

    这篇文章主要介绍了java System类和Arrays类详解,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-08-08
  • Java反射机制,如何将一个实体类所有字段赋值为null

    Java反射机制,如何将一个实体类所有字段赋值为null

    这篇文章主要介绍了Java反射机制,如何将一个实体类所有字段赋值为null,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • 深入理解java.lang.String类的不可变性

    深入理解java.lang.String类的不可变性

    不可变类只是其实例不能被修改的类。每个实例中包含的所有信息都必须在创建该实例的时候就提供,并且在对象的整个生命周期内固定不变,感兴趣的可以了解一下
    2021-06-06
  • Java JSON提取工具JsonExtractor的使用

    Java JSON提取工具JsonExtractor的使用

    本文主要介绍了Java JSON提取工具JsonExtractor的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • Java调用JavaScript实现字符串计算器代码示例

    Java调用JavaScript实现字符串计算器代码示例

    这篇文章主要介绍了Java调用JavaScript实现字符串计算器代码示例,具有一定参考价值,需要的朋友可以了解下。
    2017-12-12
  • SpringBoot对接AWS S3实现上传和查询

    SpringBoot对接AWS S3实现上传和查询

    AWS S3是亚马逊提供的一种对象存储服务,旨在提供可扩展、高可用性和安全的数据存储解决方案,本文我们就来看看SpringBoot如何对接AWS S3实现上传和查询吧
    2025-02-02

最新评论