Java类和对象的定义与使用小结

 更新时间:2026年06月19日 07:41:16   作者:好想写代码  
这段文章详细解释了面向对象编程的概念,通过对比面向对象与面向过程编程,介绍了类、对象及其关系,并强调了构造方法和this关键字的重要性,帮助读者理解面向对象编程的核心概念,感兴趣的朋友一起看看吧

一.是面向对象

1.1什么是面向对象

Java是一门纯面向对象的语言,在面向对象的世界里,一切皆为对象。我们可以理解面向对象一种解题思想,主要依靠对象之间的交互完成一件事情。

1.2面向对面向过程:

我们拿洗衣服举例子:

面向过程:

拿衣服 → 放盆里 → 加水 → 加洗衣粉 → 搓洗 → 晾干

面向对象:

找洗衣机 → 放衣服 → 按按钮 → 等待 → 晾干象和面向过程

面向对象把复杂的问题拆分成多个对象,每个对象负责自己的事情,就像我们并不知道洗衣机的原理是什么,只要会用就可以了

二.类和对象的定义和使用

2.1认识类(class)

类是用来对一个实体(对象)来进行描述的,主要描述该实体(对象)具有哪些属性(对象具有的属性),哪些功能(用来做什么),描述完成后计算机就可以识别了。

比如:学生是一个类它有属性(年龄,性别)和行为(学习,运动)

//定义一个学生类
 class Student{
     //类的属性
    int age;//年龄
    String name;//名字
}

class为定义类的关键字,student为类的名字,{}中为类的主体。

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

我们拿洗衣机举一个完整的例子

class WashMachine{
    public String brand;   // 品牌
    public String type;    // 型号
    public double weight;  // 重量
    public double length;  // 长
    public double width;  // 宽
    public double height;  // 高
    public String color;   // 颜色
    public void washClothes(){   // 洗衣服
        System.out.println("洗衣功能");
    }
    public void dryClothes(){    // 脱水
        System.out.println("脱水功能");
    }
    public void setTime(){       // 定时
        System.out.println("定时功能");
    }
}

注意事项

1. 一般一个文件当中只定义一个类

2. main方法所在的类一般要使用public修饰(注意:Eclipse默认会在public修饰的类中找main方法)

3. public修饰的类必须要和文件名相同

4. 不要轻易去修改public修饰的类的名称,如果要修改,通过开发工具修改

2.2认识对象

对象(Object) 是类的具体实例,用类类型创建对象的过程,称为类的实例化。

比如张三是学生类的一个对象,而李四则是另一个对象

public class Test {
    public static void main(String[] args) {
        // 创建对象
        Student s1 = new Student();
        s1.name = "张三";
        s1.age = 18;
        s1.study();  // 张三正在学习
        Student s2 = new Student();
        s2.name = "李四";
        s2.age = 17;
        s2.study();  // 李四正在学习
    }
}

注意事项

new 关键字用于创建一个对象的实例.

使用 . 来访问对象中的属性和方法.

同一个类可以创建对个实例.

2.3类和对象的关系

类是模板,蓝图

对象是实践,施工

类实例化出对象就像现实中使用建筑设计图建造出房子,类就像是设计图,只设计出需要什么东 西,但是并没有实体的建筑存在,同样类也只是一个设计,实例化出的对象才能实际存储数据,占用物理空间

三.this引用

3.1this引用的作用

this 代表当前对象的引用,用于区分成员变量和局部变量。

class Person {
    // 成员变量
    String name;
    int age;
    // 构造方法:参数名和成员变量重名了!
    public Person(String name, int age) {
        // this.name = 自己的name
        this.name = name;
        // this.age = 自己的age
        this.age = age;
    }
    public void showInfo() {
        System.out.println("姓名:" + this.name);
        System.out.println("年龄:" + this.age);
    }
}
public class Test {
    public static void main(String[] args) {
        Person p = new Person("小明", 20);
        p.showInfo();
    }
}

3.2 this引用的特性

1. this的类型:对应类类型引用,即哪个对象调用就是哪个对象的引用类型

2. this只能在"成员方法"中使用 比特就业课

3. 在"成员方法"中,this只能引用当前对象,不能再引用其他对象

四.构造方法

4.1什么是构造方法

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

class Dog{
    String name;
    int age;
    //带参数构造
    public Dog(String name,int age){
        this.name = name;
        this.age = age;
    }
    public void info(){
        System.out.println(name+","+age+"岁");
    }
}
public class TestDog{
    public static void main(String[] args) {
        //创建对象时传参
        Dog d = new Dog("旺财",3);
        d.info();
    }
}

4.2构造的特性

1. 名字必须与类名相同

2. 没有返回值类型,设置为void也不行

3. 创建对象时由编译器自动调用,并且在对象的生命周期内只调用一次(相当于人的出生,每个人只能出生一次

4. 构造方法可以重载(用户根据自己的需求提供不同参数的构造方法)

4.3默认初始化

public class DefaultValueDemo {
    // 8种基本类型 + 引用类型,全都没有手动赋值
    byte b;
    short s;
    int i;
    long l;
    float f;
    double d;
    char ch;
    boolean bool;
    String str;
    // 构造方法:创建对象时自动打印所有默认值
    public DefaultValueDemo() {
        System.out.println("byte   默认值:" + b);
        System.out.println("short  默认值:" + s);
        System.out.println("int    默认值:" + i);
        System.out.println("long   默认值:" + l);
        System.out.println("float  默认值:" + f);
        System.out.println("double 默认值:" + d);
        System.out.println("char   默认值:[" + ch + "]");
        System.out.println("boolean默认值:" + bool);
        System.out.println("String 默认值:" + str);
    }
    public static void main(String[] args) {
        // 创建对象 → 自动调用构造 → 一次性输出所有未初始化的值
        new DefaultValueDemo();
    }
}
//运行结果
//byte   默认值:0
//short  默认值:0
//int    默认值:0
//long   默认值:0
//float  默认值:0.0
//double 默认值:0.0
//char   默认值:[]
//boolean默认值:false
//reference 默认值:null

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

相关文章

  • 教你springboot+dubbo快速启动的方法

    教你springboot+dubbo快速启动的方法

    这篇文章主要介绍了springboot+dubbo快速启动的方法,dubbo的角色广泛的分为三类provider,comsumer,注册中心,本文通过实例代码给大家介绍的非常详细,需要的朋友参考下
    2022-04-04
  • springboot log4j2不能打印框架错误日志的解决方案

    springboot log4j2不能打印框架错误日志的解决方案

    这篇文章主要介绍了springboot log4j2不能打印框架错误日志的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • java排查进程占用系统内存高方法

    java排查进程占用系统内存高方法

    这篇文章主要为大家介绍了java进程占用系统内存高排查方法,
    2023-06-06
  • Spring中的NamespaceHandler接口及相关软件包说明

    Spring中的NamespaceHandler接口及相关软件包说明

    这篇文章主要介绍了Spring中的NamespaceHandler接口及相关软件包说明,NamespaceHandler 接口,DefaultBeanDefinitionDocumentReader 使用该接口来处理在spring xml 配置文件中自定义的命名空间,需要的朋友可以参考下
    2023-12-12
  • Dubbo注册中心与服务发现详解

    Dubbo注册中心与服务发现详解

    本文全面介绍了Dubbo注册中心及服务发现机制,包括Zookeeper、Nacos、Multicast等多种注册中心的配置方法、高可用特性及其在接口级和应用级服务发现中的应用,支持多注册中心和高阶服务治理能力,实现微服务的动态扩容和流量管控
    2025-10-10
  • SpringBoot对Jar包进行加密的示例代码

    SpringBoot对Jar包进行加密的示例代码

    在当今互联网高速发展的时代,软件安全问题变得尤为突出,随着开源技术的普及,Spring Boot等框架的应用越来越广泛,但也伴随着代码被反编译的风险,本文将探讨在Spring Boot项目中对Jar包进行加密,以防止反编译的安全实践,需要的朋友可以参考下
    2023-12-12
  • Spring AOP原理及动态代理

    Spring AOP原理及动态代理

    这篇文章主要介绍了Spring AOP原理及动态代理,文章通过围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • SpringBoot中WebClient的实践过程

    SpringBoot中WebClient的实践过程

    本文介绍了SpringBoot中WebClient的使用,包括配置、使用场景以及优化策略,帮助开发者更高效地进行服务间通信,WebClient具有非阻塞式I/O、强大的功能、灵活性等优点,适用于高并发场景,通过合理配置和优化,可以显著提升服务间通信的效率和可靠性
    2025-12-12
  • Java之使用POI教你玩转Excel导入与导出

    Java之使用POI教你玩转Excel导入与导出

    这篇文章主要介绍了Java之使用POI教你玩转Excel导入与导出,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • 使用MyBatis拦截器实现SQL的完整打印

    使用MyBatis拦截器实现SQL的完整打印

    当我们使用Mybatis结合Mybatis-plus进行开发时,为了查看执行sql的信息通常我们可以通过属性配置的方式打印出执行的sql语句,但这样的打印出了sql语句常带有占位符信息,不利于排错,所以本文介绍了构建MyBatis拦截器,实现SQL的完整打印,需要的朋友可以参考下
    2024-07-07

最新评论