详解Java中类与对象的关系

 更新时间:2023年05月08日 11:00:34   作者:tq02  
这篇文章主要介绍了详解Java中类与对象的关系,类的关键字是class,在Java编程里,类的作用相当于机械师手中的构造图,如果没有构造图,就无法打造武器,同样如果没有类,就无法实例化,需要的朋友可以参考下

前言

已经开始类与对象的讲解了,正式步入了Java的道路了,在讲解前,我们都知道Java是面向对象的编程语言,那么什么是对象呢?还有类是什么呢?

一、类与对象的介绍

类的关键字是class,在Java编程里,类的作用相当于机械师手中的构造图如果没有构造图,就无法打造武器,同样如果没有类,就无法实例化。

对象就是打造人,通过对象将类实例化。

个人结论:工匠 使用锤子根据说明书打造出武器, 对象 编译器 类 实例化。

  • 类可以有很多对象,而对象却只有一个类。 
  • 类有成员变量和成员方法。
  • 类不占空间,只有实例化时,才开辟相应空间。      

二、类的实例化

类相当于构造图,然而构造图上肯定写了需要的零件打造的方法,所以类就有着成员变量成员方法

然后对象才知道如何打造(开辟空间)。

类和对象的定义和实例化的格式:

// 创建类   类名
class <class_name>{
field;//成员属性
method;//成员方法
}
// 实例化对象
<class_name> <对象名> = new <class_name>();
 

class为定义类的关键字,ClassName为类的名字,{}中为类的主体。 类中的元素称为:成员属性。类中的函数称为:成员方法

格式已经出来了,现在我们敲一个代码出来看看:

class Person {
    int age;//成员属性 实例变量
    String name;
    String sex;
    //成员方法
    public void eat() {
    System.out.println("吃饭!");
    }
    public void sleep() {
    System.out.println("睡觉!");
    }
}
public class Main{
public static void main(String[] args) {
    Person person = new Person();   //通过new实例化对象
    //产生对象 实例化对象
    Person person2 = new Person();
    Person person3 = new Person();
}

这就是创建类和对象的具体方法了。

三.类与对象的使用方法

3.1对象的初始化

对象的初始化有两种方式。

第一种:使用圆点成员运算符( .) 可以直接对指定对象实例化的成员变量进行赋值。

对象.属性:表示调用类之中的成员变量;对象.方法():表示调用类之中的成员方法。

第二种:使用构造函数,使用函数可以对成员变量进行初始化。

类名(参数){ 结构体 };

代码示例图:

class Person {
    int age;//成员属性 实例变量
    String name;
    String sex;
    //构造函数
    Person(){ 
    }
    Person(String names){
    name=names;
    }
    //成员方法
    public void eat() {
    System.out.println("吃饭!");
    }
    public void sleep() {
    System.out.println("睡觉!");
    }
}
public class Main{
public static void main(String[] args) {
    Person person = new Person();   //通过new实例化对象
    //初始化person成员变量name,调用成员方法eat()
    person.name="李四"; //操作属性内容
    person.eat():   //调用成员方法
    //构造方法初始化
    Person person2 = new Person("张三");
    Person person3 = new Person();
}  

3.2内存显示图

类的构造图,但一旦实例化,就开辟出了内存,存放着对应的变量和方法。

代码内存显示图:

在main函数里创建了三个对象,person、person1、person2。每个对象都进行了实例化,在堆空间创建了内存。如上图,相当于每一个对象都有属于它的空间

四.this的使用方法

this是什么?this是关键字,代表着当前对象的引用。当参数名和成员变量相同时,使用this来引用,则代表的是成员变量。

结论:从图中我们可以分析到 this不但可以引用成员变量,也可以使用构造函数。所以this便是当前对象。

注:只允许在当前类使用,构造方法中使用,需要放在第一行。

总结

  •  类相当于蓝图,由对象根据类来将其实例化。
  • public修饰的类必须与文件名相同
  • this相当于对象名,作用和对象名一样,可以引用成员变量、构造函数、成员函数。但引用构造函数需要放在第一行。
  • 类不占空间,但是对象实例化之后需要开辟空间。

在类与对象之后,还会有封装、继承、抽象、多态和接口相关的知识,在类与对象的基础上不断的延长。

到此这篇关于详解Java中类与对象的关系的文章就介绍到这了,更多相关Java类与对象内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java 三种进制的数值常量操作

    Java 三种进制的数值常量操作

    这篇文章主要介绍了Java 三种进制的数值常量操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • log4j使用详细解析

    log4j使用详细解析

    Log4j 除了可以记录程序运行日志信息外还有一重要的功能就是用来显示调试信息。下面通过本文给大家介绍log4j使用详细解析,感兴趣的朋友一起看看吧
    2017-10-10
  • Java中URL的处理方法详解

    Java中URL的处理方法详解

    URL(Uniform Resource Locator)中文名为统一资源定位符,有时也被俗称为网页地址,表示为互联网上的资源,本文主要为大家介绍了Java是如何处理URL的,感兴趣的可以了解一下
    2023-05-05
  • Java EasyExcel实现导出多sheet并设置单元格样式

    Java EasyExcel实现导出多sheet并设置单元格样式

    EasyExcel是一个基于Java的、快速、简洁、解决大文件内存溢出的Excel处理工具,下面我们就来学习一下EasyExcel如何实现导出多sheet并设置单元格样式吧
    2023-11-11
  • HttpServletRequestWrapper干预Request处理流程解析

    HttpServletRequestWrapper干预Request处理流程解析

    这篇文章主要分析在 Tomcat的处理 http 请求的流程中干预 Request对象, 通过基于HttpServletRequestWrapper和 Filter组合进行干预,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2023-09-09
  • 使用IDEA反编译没有擦除泛型的原因解析

    使用IDEA反编译没有擦除泛型的原因解析

    Java泛型引入至今已有近20年,“伪泛型”已被认为是所有开发者的共识,没有必要再在反编译后体现出来反倒大大降低了可读性,这篇文章主要介绍了使用IDEA反编译没有擦除泛型的原因解析,需要的朋友可以参考下
    2023-05-05
  • Java语言实现简单FTP软件 FTP协议分析(1)

    Java语言实现简单FTP软件 FTP协议分析(1)

    这篇文章主要介绍了Java语言实现简单FTP软件的第一篇,针对FTP协议进行分析,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • java利用pdfbox+poi往pdf插入数据

    java利用pdfbox+poi往pdf插入数据

    这篇文章主要给大家介绍了关于java利用pdfbox+poi如何往pdf插入数据的相关资料,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-02-02
  • 学习不同 Java.net 语言中类似的函数结构

    学习不同 Java.net 语言中类似的函数结构

    这篇文章主要介绍了学习不同 Java.net 语言中类似的函数结构,函数式编程语言包含多个系列的常见函数。但开发人员有时很难在语言之间进行切换,因为熟悉的函数具有不熟悉的名称。函数式语言倾向于基于函数范例来命名这些常见函数。,需要的朋友可以参考下
    2019-06-06
  • SpringSecurity实现自定义用户认证方案

    SpringSecurity实现自定义用户认证方案

    Spring Security 实现自定义用户认证方案可以根据具体需求和业务场景进行设计和实施,满足不同的安全需求和业务需求,这种灵活性使得认证机制能够更好地适应各种复杂的环境和变化‌,本文给大家介绍了SpringSecurity实现自定义用户认证方案,需要的朋友可以参考下
    2025-01-01

最新评论