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

相关文章
|
14天前
|
Java
java代码优化:判断内聚到实体对象中和构造上下文对象传递参数
通过两个常见的java后端实例场景探讨代码优化,代码不是优化出来的,而是设计出来的,我们永远不可能有专门的时间去做代码优化,优化和设计在平时
29 15
|
2月前
|
Java 开发者
在 Java 中,一个类可以实现多个接口吗?
这是 Java 面向对象编程的一个重要特性,它提供了极大的灵活性和扩展性。
175 57
|
29天前
|
JSON Java Apache
Java基础-常用API-Object类
继承是面向对象编程的重要特性,允许从已有类派生新类。Java采用单继承机制,默认所有类继承自Object类。Object类提供了多个常用方法,如`clone()`用于复制对象,`equals()`判断对象是否相等,`hashCode()`计算哈希码,`toString()`返回对象的字符串表示,`wait()`、`notify()`和`notifyAll()`用于线程同步,`finalize()`在对象被垃圾回收时调用。掌握这些方法有助于更好地理解和使用Java中的对象行为。
|
2月前
|
存储 缓存 安全
java 中操作字符串都有哪些类,它们之间有什么区别
Java中操作字符串的类主要有String、StringBuilder和StringBuffer。String是不可变的,每次操作都会生成新对象;StringBuilder和StringBuffer都是可变的,但StringBuilder是非线程安全的,而StringBuffer是线程安全的,因此性能略低。
81 8
|
2月前
|
安全 Java 编译器
Java对象一定分配在堆上吗?
本文探讨了Java对象的内存分配问题,重点介绍了JVM的逃逸分析技术及其优化策略。逃逸分析能判断对象是否会在作用域外被访问,从而决定对象是否需要分配到堆上。文章详细讲解了栈上分配、标量替换和同步消除三种优化策略,并通过示例代码说明了这些技术的应用场景。
Java对象一定分配在堆上吗?
|
2月前
|
存储 安全 Java
java.util的Collections类
Collections 类位于 java.util 包下,提供了许多有用的对象和方法,来简化java中集合的创建、处理和多线程管理。掌握此类将非常有助于提升开发效率和维护代码的简洁性,同时对于程序的稳定性和安全性有大有帮助。
91 17
|
2月前
|
安全 Java
Java多线程集合类
本文介绍了Java中线程安全的问题及解决方案。通过示例代码展示了使用`CopyOnWriteArrayList`、`CopyOnWriteArraySet`和`ConcurrentHashMap`来解决多线程环境下集合操作的线程安全问题。这些类通过不同的机制确保了线程安全,提高了并发性能。
|
3月前
|
Java API
Java 对象释放与 finalize 方法
关于 Java 对象释放的疑惑解答,以及 finalize 方法的相关知识。
73 17
|
2月前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
149 4
|
2月前
|
Java 编译器 开发者
Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面
本文探讨了Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面,帮助开发者提高代码质量和程序的健壮性。
98 2