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 设计模式之状态模式:让对象的行为随状态优雅变化
状态模式通过封装对象的状态,使行为随状态变化而改变。以订单为例,将待支付、已支付等状态独立成类,消除冗长条件判断,提升代码可维护性与扩展性,适用于状态多、转换复杂的场景。
761 157
|
6月前
|
安全 Java 数据建模
Java记录类:简化数据载体的新选择
Java记录类:简化数据载体的新选择
345 101
|
6月前
|
安全 Java 开发者
Java记录类:简化数据载体的新方式
Java记录类:简化数据载体的新方式
336 100
|
7月前
|
安全 IDE Java
Java记录类型(Record):简化数据载体类
Java记录类型(Record):简化数据载体类
563 143
|
5月前
|
存储 Java 索引
用Java语言实现一个自定义的ArrayList类
自定义MyArrayList类模拟Java ArrayList核心功能,支持泛型、动态扩容(1.5倍)、增删改查及越界检查,底层用Object数组实现,适合学习动态数组原理。
225 4
|
5月前
|
IDE JavaScript Java
在Java 11中,如何处理被弃用的类或接口?
在Java 11中,如何处理被弃用的类或接口?
293 5
|
5月前
|
编解码 Java 开发者
Java String类的关键方法总结
以上总结了Java `String` 类最常见和重要功能性方法。每种操作都对应着日常编程任务,并且理解每种操作如何影响及处理 `Strings` 对于任何使用 Java 的开发者来说都至关重要。
370 5
|
5月前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
277 1
|
5月前
|
Java Go 开发工具
【Java】(8)正则表达式的使用与常用类分享
正则表达式定义了字符串的模式。正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。
401 1
|
5月前
|
存储 Java 程序员
【Java】(6)全方面带你了解Java里的日期与时间内容,介绍 Calendar、GregorianCalendar、Date类
java.util 包提供了 Date 类来封装当前的日期和时间。Date 类提供两个构造函数来实例化 Date 对象。第一个构造函数使用当前日期和时间来初始化对象。Date( )第二个构造函数接收一个参数,该参数是从1970年1月1日起的毫秒数。
269 1