java面向对象学不会?看完这篇文章就会了
众所周知java是面向对象的编程语言,那么什么是面向对象呢,大家经常把面向对象和面向过程混淆,下面就说个例子,一秒就会!
例如小明有一些脏衣服需要去洗干净,这是就相当于一个命令把衣服洗干净
A:面向过程:小明需要自己独立完成,打水、放洗衣液、搓衣服等等一些列操作直至衣服洗干净
B:面向对象:小明不需要自己独立完成,但是他需要把衣服送到具有洗衣服功能的地方,例如洗衣房,你需要办一张会员卡,然后对工作人员说:我不管你用什么办法,总之给我洗干净就行
首先需要一个类,这里面不写main方法,这里面会有三部分组成
A:类变量B:类方法C:构造函数
假如现在有一个学生类
A:类变量,又称作成员变量,它是用来描述这个类的属性,、一个学生肯定有姓名、学号、年龄、性别等一些列属性!所以这些成为成员变量
B:类方法:类方法就是这个类他有什么功能,他能干一些什么,例如一个学生他能算数、考试、吃饭等一系列技能
C:构造函数:构造函数就是给这个类找个实体,现在只知道这是一个学生类,这个学生类具体是谁啊,目前不知道,现在就需要一个构造函数来完成定义一个实体,注意构造函数他主要有两种,一种是无参构造另一种有参构造构造函数可以有多个或者一个没有,接下来就说一下这两个的区别
无参构造:无参构造来定义一个实体时,只是指明有一个学生,但是学生的信息没有说!当在学生类中没有写构造函数,java会自动为这个类提供一个无参构造,用于创建对象(实体)
有参构造:有参构造定义的一个学生,他还指定了一个这个学生的一些信息,比如这个学生叫什么,今年多大了,下面通过代码来说明一下描述
学生类:
测试类:
因为在学生类中我们没有写main函数,没有办法运行,需要写一个测试类
注意:一个类中可以没有构造函数,也可以有多个构造函数
方法的重载这个也比较重要,方法重载指的是在一个类中两个方法方法的名字相同,但传递的参数不同,代码如下
当一个类中的成员变量与方法的形参重名里,在方法中要使用成员变量的值需要用this.成员变量
静态是比较常用的一个关键字,静态经常修饰变量,方法,静态代码块
用static修饰的有两个特性A:静态B:共享
B:共享:用static修饰的变量和方法,表示他不是一个对象独有的,他是所有对象公用的,用static修饰的变量和方法,不需要创建对象就可以直接类名.方法名/变量名即可调用
静态代码块是类加载便执行的部分,他是第一个执行的,但是他只执行一次,当再次访问这个类时,static代码块不会执行,接下来说明一下静态代码块、构造函数,构造代码块执行顺序
所以执行顺序静态代码块>构造代码块>构造函数
还有继承,这是java的特点之一,下次更新
为了让大家更快速高效的学习,我整理了一份 Java 全能资料包含(高可用、高并发、高性能及分布式、 Jvm 性能调优、 Spring 源码, MyBatis , Netty , Redis , Kafka , Mysql , Zookeeper , Tomcat , Docker , Dubbo , Nginx ,架构,面试等等…)
Java面向对象的特性
Java 语言通过面向对象编程(OOP)模型来组织和管理代码。面向对象编程强调将数据和操作数据的代码组织在一起,通过对象的方式进行建模。
- 数据封装:指对系统的其余部分隐藏数据,只允许访问其中的部分数据。
- 简易性:构建大型系统是一个复杂的任务,有许多问题需要解决。 若能够将复杂的事物分解成更小的问题,分解成对象,这意味着你可以简化整个任务。
- 易于修改:当你依赖于对象并使用这些对象对系统进行建模时,可更轻松地跟踪系统的哪些部分需要修改。
- 可维护性: 使用对象可更轻松地找到需要维护的特定代码区域。
- 可重用性:对象的定义可在你的系统的许多部分中多次使用,也可能在其他系统中多次使用。
Java 的面向对象特性包括以下几个主要方面:
封装是将对象的状态(属性)和行为(方法)包装在一个类中,并通过公开的接口(通常是公共方法)与外界交互。封装的主要目的是保护对象的状态,使得对象内部的实现细节对外部代码隐藏,避免外部直接访问和修改对象的属性。
- 实现方式:通过访问修饰符(如 private, public, protected, default)来控制属性和方法的可见性,通常将属性设置为 private,并通过 public 方法提供访问接口(getter/setter)。
继承允许一个类继承另一个类的属性和方法,从而实现代码的重用。子类可以继承父类的成员(字段和方法),并且可以扩展或重写父类的方法。
- 实现方式:使用 extends 关键字表示继承关系,子类可以继承父类的公有和保护成员,且可以覆盖父类的方法。
多态是指同一方法在不同对象上有不同的表现形式。通过多态,一个父类引用可以指向子类对象,并且调用方法时会表现出子类的行为。
- 实现方式:方法重写(override)和方法重载(overload)是实现多态的两种方式。方法重写发生在继承中,子类提供一个实现来覆盖父类的方法;方法重载则是在同一个类中根据参数不同定义多个方法。
抽象是指隐藏具体实现,关注于类的接口和功能,而不是实现的细节。抽象的目的是简化复杂的系统,通过定义抽象类或接口来声明一组方法,而不提供方法的具体实现,具体实现由子类完成。
- 实现方式:使用 abstract 关键字定义抽象类和抽象方法。抽象类不能被实例化,必须由子类继承并实现抽象方法。
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。