【Java】认识类和对象

简介: 【Java】认识类和对象

一. 面向对象的介绍和理解

1. 面向对象的介绍

Java是一门纯面向对象的语言(Object Oriented Program,继承OOP),在面向对象的世界里,一切皆为对象。面向对象是解决问题的一种思想,主要依靠对象之间的交互完成一件事情。用面向对象的思想来涉及程序,更符合人们对事物的认知,对于大型程序的设计、扩展以及维护都非常友好。

2. 面向对象的理解

利用生活中洗衣服的例子理解面向对象:

  1. 传统的洗衣服过程

在传统的洗衣服过程中,需要进行如下的环节,洗衣服的每一环节都需要亲力亲为,也就是说洗衣服的过程都需要我们自己去完成;而这就是面向过程了,

73d8c9be8b2a4960a39693770de0ac9a.png

而且不同衣服洗的方式,时间长度,拧干方式都不同,处理起来就比较麻烦;如果将来要洗鞋子,那就是另一种放方式;再结合我们写代码来说,如果按照该种方式来写代码,将来扩展或者维护起来会比较麻烦。


现代的洗衣服过程

在现代洗衣服的过程中,可以通过洗衣机去洗衣服,人把衣服和洗衣粉放入洗衣机中,启动开关即可;这里就是以面向对象方式来进行处理,不再关注洗衣服的过程 ;具体洗衣机是怎么来洗衣服,如何来甩干的,我们不用去关心 。73d8c9be8b2a4960a39693770de0ac9a.png

注意:面向过程和面相对象并不是一门语言,而是解决问题的方法,没有那个好坏之分,都有其专门的应用场景。

二. 类的定义和使用

1. 类是用来干什么的

面相对象程序设计关注的是对象,而对象是现实生活中的实体,比如:洗衣机。但是洗衣机计算机并不认识,需要开发人员告诉给计算机什么是洗衣机。73d8c9be8b2a4960a39693770de0ac9a.png

上图左侧就是对洗衣机简单的描述,该过程称为对洗衣机对象(实体)进行抽象(对一个复杂事物的重新认知),但是这些简化的抽象结果计算机也不能识别,开发人员可以采用某种面相对象的编程语言来进行描述,比如:Java、C++语言等;


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

2. 类的定义

下面以定义一个洗衣机为例:

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

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

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

class WashMachine{
    //属性(字段)-》成员变量
    public String brand; // 洗衣机的品牌
    public String type; // 型号
    public double weight; // 重量
    public double lenght; // 长
    public double weidth; // 宽
    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修饰的类必须要和文件名相同

3. 类的实例化

定义了一个类,就相当于在计算机中定义了一种新的类型,与int,double类似,只不过int和double是java语言自带的内置类型,而类是用户自定义了一个新的类型 。

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

定义一个狗类并将其实例化:

class Dog {
    //属性(字段)-》成员变量
    public String name;//狗的姓名
    public String color;//狗的颜色
    //行为(方法)-》成员方法
    public void barks() {
        System.out.println(name+"汪汪叫");
    }
    public void wag() {
        System.out.println(name+"摇尾巴");
    }
}
public class Test {
    public static void main(String[] args) {
        Dog dog1 = new Dog();//实例化(创建对象)
        //使用 . 访问对象成员
        dog1.name = "小金";
        dog1.color = "金色";
        dog1.barks();
        dog1.wag();
        Dog dog2 = new Dog();
        dog2.name = "小哈";
        dog2.color = "灰白";
        dog2.barks();
        dog2.wag();
    }
}

执行结果:

73d8c9be8b2a4960a39693770de0ac9a.png

注意事项:

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

三. 类和对象的说明

类只是一个模型一样的东西,用来对一个实体进行描述,限定了类有哪些成员.

类是一种自定义的类型,可以用来定义变量.

一个类可以实例化出多个对象,实例化出的对象占用实际的物理空间,存储类成员变量

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


73d8c9be8b2a4960a39693770de0ac9a.png

目录
相关文章
|
4天前
|
安全 Java 编译器
java中类与对象回顾总结-2
java中类与对象回顾总结
14 3
|
4天前
|
Java 编译器
java中类与对象回顾总结-1
java中类与对象回顾总结
14 3
|
16小时前
|
存储 Java ice
【Java开发指南 | 第十六篇】Java数组及Arrays类
【Java开发指南 | 第十六篇】Java数组及Arrays类
8 3
|
16小时前
|
Java 编译器 ice
【Java开发指南 | 第十五篇】Java Character 类、String 类
【Java开发指南 | 第十五篇】Java Character 类、String 类
8 1
|
18小时前
|
Java 编译器
【Java开发指南 | 第一篇】类、对象基础概念及Java特征
【Java开发指南 | 第一篇】类、对象基础概念及Java特征
9 4
|
1天前
|
安全 Java 数据安全/隐私保护
Java一分钟之-Java反射机制:动态操作类与对象
【5月更文挑战第12天】本文介绍了Java反射机制的基本用法,包括获取Class对象、创建对象、访问字段和调用方法。同时,讨论了常见的问题和易错点,如忽略访问权限检查、未捕获异常以及性能损耗,并提供了相应的避免策略。理解反射的工作原理和合理使用有助于提升代码灵活性,但需注意其带来的安全风险和性能影响。
16 4
|
2天前
|
安全 Java 调度
Java一分钟:多线程编程初步:Thread类与Runnable接口
【5月更文挑战第11天】本文介绍了Java中创建线程的两种方式:继承Thread类和实现Runnable接口,并讨论了多线程编程中的常见问题,如资源浪费、线程安全、死锁和优先级问题,提出了解决策略。示例展示了线程通信的生产者-消费者模型,强调理解和掌握线程操作对编写高效并发程序的重要性。
42 3
|
3天前
|
Java
【JAVA基础篇教学】第五篇:Java面向对象编程:类、对象、继承、多态
【JAVA基础篇教学】第五篇:Java面向对象编程:类、对象、继承、多态
|
3天前
|
存储 安全 Java
Java容器类List、ArrayList、Vector及map、HashTable、HashMap
Java容器类List、ArrayList、Vector及map、HashTable、HashMap
|
4天前
|
缓存 Java 程序员
关于创建、销毁对象⭐Java程序员需要掌握的8个编程好习惯
关于创建、销毁对象⭐Java程序员需要掌握的8个编程好习惯
关于创建、销毁对象⭐Java程序员需要掌握的8个编程好习惯