Java语言-----类与对象的秘密

简介: Java语言-----类与对象的秘密

😽个人主页: tq02的博客_CSDN博客-C语言,Java领域博主


🌈理想目标:努力学习,向Java进发,拼搏一切,找到一份朝九晚五,有假期的工作,让自己的未来不会有遗憾。

🎁欢迎各位→点赞👍 + 收藏⭐ + 评论📝+关注✨


    本章讲解内容:Java类与对象的讲解。


b00a056748e248a8a45bda703cd490ee.jpg

今日份鸡汤:不要把明天当着你的底气。


前言


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


一、类与对象的介绍


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


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


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


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


二、类的实例化


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

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


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

// 创建类   类名
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内存显示图


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

代码内存显示图:


46db94621c9a417b97190c7e95fe9d4f.png

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


四.this的使用方法


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

06f1ea7328544bb9a721d8acd2c6b056.png

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

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


总结


类相当于蓝图,由对象根据类来将其实例化。

public修饰的类必须与文件名相同

this相当于对象名,作用和对象名一样,可以引用成员变量、构造函数、成员函数。但引用构造函数需要放在第一行。

类不占空间,但是对象实例化之后需要开辟空间。

 

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

目录
相关文章
|
6天前
|
安全 Java 编译器
Java对象一定分配在堆上吗?
本文探讨了Java对象的内存分配问题,重点介绍了JVM的逃逸分析技术及其优化策略。逃逸分析能判断对象是否会在作用域外被访问,从而决定对象是否需要分配到堆上。文章详细讲解了栈上分配、标量替换和同步消除三种优化策略,并通过示例代码说明了这些技术的应用场景。
Java对象一定分配在堆上吗?
|
3天前
|
存储 安全 Java
java.util的Collections类
Collections 类位于 java.util 包下,提供了许多有用的对象和方法,来简化java中集合的创建、处理和多线程管理。掌握此类将非常有助于提升开发效率和维护代码的简洁性,同时对于程序的稳定性和安全性有大有帮助。
29 17
|
10天前
|
Java API
Java 对象释放与 finalize 方法
关于 Java 对象释放的疑惑解答,以及 finalize 方法的相关知识。
34 17
|
4天前
|
存储 安全 Java
如何保证 Java 类文件的安全性?
Java类文件的安全性可以通过多种方式保障,如使用数字签名验证类文件的完整性和来源,利用安全管理器和安全策略限制类文件的权限,以及通过加密技术保护类文件在传输过程中的安全。
|
8天前
|
Java 数据格式 索引
使用 Java 字节码工具检查类文件完整性的原理是什么
Java字节码工具通过解析和分析类文件的字节码,检查其结构和内容是否符合Java虚拟机规范,确保类文件的完整性和合法性,防止恶意代码或损坏的类文件影响程序运行。
|
8天前
|
Java API Maven
如何使用 Java 字节码工具检查类文件的完整性
本文介绍如何利用Java字节码工具来检测类文件的完整性和有效性,确保类文件未被篡改或损坏,适用于开发和维护阶段的代码质量控制。
|
9天前
|
存储 安全 Java
Java编程中的对象序列化与反序列化
【10月更文挑战第22天】在Java的世界里,对象序列化和反序列化是数据持久化和网络传输的关键技术。本文将带你了解如何在Java中实现对象的序列化与反序列化,并探讨其背后的原理。通过实际代码示例,我们将一步步展示如何将复杂数据结构转换为字节流,以及如何将这些字节流还原为Java对象。文章还将讨论在使用序列化时应注意的安全性问题,以确保你的应用程序既高效又安全。
|
8天前
|
存储 Java 编译器
java wrapper是什么类
【10月更文挑战第16天】
17 3
|
11天前
|
Java 程序员 测试技术
Java|让 JUnit4 测试类自动注入 logger 和被测 Service
本文介绍如何通过自定义 IDEA 的 JUnit4 Test Class 模板,实现生成测试类时自动注入 logger 和被测 Service。
18 5
|
9天前
|
存储 缓存 NoSQL
一篇搞懂!Java对象序列化与反序列化的底层逻辑
本文介绍了Java中的序列化与反序列化,包括基本概念、应用场景、实现方式及注意事项。序列化是将对象转换为字节流,便于存储和传输;反序列化则是将字节流还原为对象。文中详细讲解了实现序列化的步骤,以及常见的反序列化失败原因和最佳实践。通过实例和代码示例,帮助读者更好地理解和应用这一重要技术。
7 0