java类和对象详解(1)

简介: java类和对象详解(1)

 

面向对象的初步认知

什么是面向对象

Java是一门纯面向对象的语言(Object Oriented Program, 简称OOP),在面向对象的世界里,一切皆为对象。面向对象是解决问题的一种思想,主要依靠对象之间的交互完成一件事情。

用面向对象的思想来涉及程序,更符合人们对于事物的认知,对于大型的程序设计,扩展和维护都非常友好。 (核心:找对象->面向对象->使用对象)。

面向对象和面向过程

面向对象和面向过程都是用来组织和处理程序中的数据和功能的方法,它们之间的主要区别在于如何组织和管理代码 🌟

  1. 面向对象(Object-Oriented):
  • 面向对象编程将问题分解成一系列的对象,每个对象都是一个独立的实体,具有自己的属性和方法,对象之间通过交互来完成任务😺
  • 程序中的数据和功能被封装在对象中,使代码更加模块化、灵活和易于维护💡
  • 面向对象编程强调代码的重用性,可以通过继承和多态等特性,使得代码更加可扩展🌈
  • Java、Python、C++等编程语言都支持面向对象编程🐾
  • 面向过程可以看作人用洗衣机洗衣服的过程,总共有四个对象:人,水,衣服,洗衣机。整个过程主要是这四个对象之间交互完成的,人不需要关心洗衣机是如何洗衣服的,是如何甩干的。
  1. 面向过程(Procedural-Oriented):
  • 面向过程编程将问题分解成一系列的过程(函数),每个过程执行特定的功能喵~ 程序按照过程的顺序依次执行😺
  • 程序中的数据和功能被分散在各个过程中,代码可能较为冗长和重复,不太容易维护和扩展💦
  • 面向过程编程比较直观和简单,适用于一些简单的任务和算法实现🐾
  • C语言通常被认为是面向过程编程的代表🐾
  • 面向对象可以看作传统人手洗衣服的过程,要经过许多流程才能洗好衣服,少了任何一个环节都不行。

在实际编程中,我们可以根据问题的复杂程度和需求选择合适的编程范式🌸

类定义和使用

类的简单认识

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

比如:洗衣机,它是一个品牌,在java当中可以看作为一个类别。

属性:产品品牌,型号,质量,颜色,尺寸等。

功能:洗衣,烘干,除菌等。

类的定义格式

在java中定义类时需要用到class关键字,具体语法如下:

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

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

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

在之后,我们会学到类中包含的五种东西:1.成员变量,2.成员方法,3.构造器,4.代码块,5.内部类。

例:构建一个洗衣机类

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

采用Java语言将洗衣机类在计算机中定义完成,经过javac编译之后形成.class文件(每个类都会形成一个字节码文件),在JVM的基础上计算机就可以识别了。

注意事项:

1.类名采用大驼峰定义

2.成员前写法统一为public,后面统一解释

3.此处写的方法不带static关键字,后面解释

4.建议一个类放在一个java文件夹中

5.main方法所在的类一般要用public修饰

6.public修饰的类必须要与文件名相同(因此不要轻易修改类的名称)

类的实例化

什么是实例化

定义了一个类,就相当于在计算机中定义了一个新的类型, 与int,double等类似,只不过它们是java语言自带的内置类型,而类是用户定义了一个新的类型,比如上述的洗衣机类。它们都是类(一种新的定义类型),有了这些定义类型后,就可以使用这些类来定义实例(或称对象)

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

public class test4 {
    public static void main(String[] args) {
        WashMachine wash1 = new WashMachine();//通过new来实例化对象
        wash1.brand = "牛逼牌";
        wash1.type = "XP180";
        wash1.washClothes();
        wash1.dryClothes();
 
        WashMachine wash2 = new WashMachine();//可以实例化多个对象
        wash2.brand = "王牌对王 牌";
        wash2.type = "XP150";
        wash2.washClothes();
        wash2.dryClothes();
    }
}

注意事项:

1.使用new关键字以创建一个对象的实例

2.使用. 来访问一个对象的属性和方法

3.同一个类中可创建多个实例(一个类实例化多个对象)

类和对象实例化的说明

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

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

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

4.打个比方,类实例化出的对象就像现实中使用建筑设计图建造出房子,类就像设计图,只管设计出需要什么东西,但没有实体化的建筑存在,同样类也是个设计,实例化出的对象才能存储实例化数据。

相关文章
|
5天前
|
Java 编译器 ice
【Java开发指南 | 第十五篇】Java Character 类、String 类
【Java开发指南 | 第十五篇】Java Character 类、String 类
25 1
|
3天前
|
自然语言处理 Java API
Java 8的Stream API和Optional类:概念与实战应用
【5月更文挑战第17天】Java 8引入了许多重要的新特性,其中Stream API和Optional类是最引人注目的两个。这些特性不仅简化了集合操作,还提供了更好的方式来处理可能为空的情况,从而提高了代码的健壮性和可读性。
26 7
|
5天前
|
Java
【Java开发指南 | 第十四篇】Java Number类及Math类
【Java开发指南 | 第十四篇】Java Number类及Math类
16 1
|
1天前
|
安全 Java 容器
Java一分钟之-并发编程:线程安全的集合类
【5月更文挑战第19天】Java提供线程安全集合类以解决并发环境中的数据一致性问题。例如,Vector是线程安全但效率低;可以使用Collections.synchronizedXxx将ArrayList或HashMap同步;ConcurrentHashMap是高效线程安全的映射;CopyOnWriteArrayList和CopyOnWriteArraySet适合读多写少场景;LinkedBlockingQueue是生产者-消费者模型中的线程安全队列。注意,过度同步可能影响性能,应尽量减少共享状态并利用并发工具类。
16 2
|
4天前
|
设计模式 算法 Java
Java的前景如何,好不好自学?,万字Java技术类校招面试题汇总
Java的前景如何,好不好自学?,万字Java技术类校招面试题汇总
|
5天前
|
消息中间件 Java RocketMQ
MQ产品使用合集之在同一个 Java 进程内建立三个消费对象并设置三个消费者组订阅同一主题和标签的情况下,是否会发生其中一个消费者组无法接收到消息的现象
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
11 1
|
5天前
|
安全 Java 开发者
Java一分钟之-文件与目录操作:Path与Files类
【5月更文挑战第13天】Java 7 引入`java.nio.file`包,`Path`和`Files`类提供文件和目录操作。`Path`表示路径,不可变。`Files`包含静态方法,支持创建、删除、读写文件和目录。常见问题包括:忽略异常处理、路径解析错误和权限问题。在使用时,注意异常处理、正确格式化路径和考虑权限,以保证代码稳定和安全。结合具体需求,这些方法将使文件操作更高效。
11 2
|
5天前
|
安全 Java 开发者
Java一分钟之-Optional类:优雅处理null值
【5月更文挑战第13天】Java 8的`Optional`类旨在减少`NullPointerException`,提供优雅的空值处理。本文介绍`Optional`的基本用法、创建、常见操作,以及如何避免错误,如直接调用`get()`、误用`if (optional != null)`检查和过度使用`Optional`。正确使用`Optional`能提高代码可读性和健壮性,建议结合实际场景灵活应用。
22 3
|
5天前
|
存储 Java 索引
【Java开发指南 | 第十六篇】Java数组及Arrays类
【Java开发指南 | 第十六篇】Java数组及Arrays类
10 3
|
5天前
|
存储 缓存 Java
【Java开发指南 | 第六篇】Java成员变量(实例变量)、 类变量(静态变量)
【Java开发指南 | 第六篇】Java成员变量(实例变量)、 类变量(静态变量)
12 2