工作中需要用到的Java知识(Java概念篇)

工作中需要用到的Java知识(Java概念篇)

昨晚自己快睡觉的时候在想今天要复习哪些内容,本想着今天复习Java正则表达式与IO流的东西,但是还是先将Java中的重要概念复习一下吧,觉得如果这个没有理解的话,Java的学习会很难受,了解源码的时候就会十分吃力,所以就先按照我的理解介绍一下Java中重要的概念。

  • 1.面向对象
    Java最重要的应该就是面向对象了吧,现在我了解到的编程思想有:面向对象编程面向接口编程面向过程编程面向切面编程。Java就是一个面向对象编程的语言,那么什么是面向对象呢?

①类
我们首先来规定一个范围,狗是一个类别,其中有各种各样的狗狗,所以在java中我们定义一个狗的类别。
狗的类别

②属性
当我们确定了狗这个类别后,我们就要更细致的描述他,一只狗应该有他的名字,有他的年龄,这些我们就把他称为属性
狗的属性
此时我们可以看见public与private两个单词,这两个单词是修饰符,可以修饰这个Java文件的权限,public说明谁都可以看private说明只有在这个类中才能对这个内容进行操作。其实一共有四种类型的修饰符,但是我在工作中常用的只有这两个。

③Get方法与Set方法
在工作中我们对于属性的操作不仅局限于自己,可能很多人会来使用你的Dog类,我们不希望所有人都能修改我们的属性,所以我们就会将属性变为私有,同时写上Get方法与Set方法当别人使用Get方法的时候就会得到属性,但是他无法向属性内放入其他值,保证了安全性
Get方法与Set方法
④其他方法
当我们创建的小狗类有了具体的属性,那么他就应该可以有行为,比如小狗可以跑,可以跳,可以吃饭,睡觉,这时候我们就可以用一个方法来表达这些行为。有返回值的方法可以称为函数,无返回值的方法可以称为过程
跑的方法
在Java语言中每一个文件都是一个类,里面由属性,方法等构成,每当我们需要使用这个类的时候我们就可以创建一个对象,使用这个对象来进行方法的调用。

总结:面向对象的特征就是封装,继承,多态。如果有四个特征的话就应该再加上一个抽象。面向对象编程会提高代码的复用性,减少编写逻辑的代码,可以将编码的重心放在业务逻辑上,提升编码效率,降低编码的复杂性。

  • 2.封装
    封装是Java面向对象的特点之一,封装的意思顾名思义,就是将某一部分内容包装起来成为一个包裹。
    封装1
    每一个盒子都装着对应的内容,盒子的名在Java中就是类名,也就是以class关键字修饰的名字。

总结:封装的内容可以让我们直接使用其中的方法进行编程,我们不需要理解他是如何实现的,只需要知道他做了些什么就可以,降低了编程的上手难度,同时也加强了代码的可读性。

  • 3.继承
    继承也是面向对象编程中的一个特点,在一个类中,我们可以指定一个类为他的父类,当我们指定后,他就可以实现其父类的方法。
    父类
    子类

使用extends关键字就可以继承其他的类,当我们继承后创建了一个Dog对象,我们直接执行run方法,就可以在控制台输出 “跑”
继承1
当然,Java中继承是有限制的,

一个类只能继承一个类,不可进行多继承可以多重继承,就是可以A继承B,B再继承C;但是不可以A继承B同时也继承C


父类私有方法不可继承


子类可以有自己的方法,对父类进行扩展

其实继承的内容借鉴上一篇内容中集合家族的结构来说就一目了然了,我将地址粘贴过来了↓
工作中需要用到的Java知识(集合篇)

集合的结构顶级类为Collection,这个类中定义了集合类的通用方法,如size(), add(), 等方法。所有的非Map集合都继承了这个类,他们又有自己的扩展,形成了自己单独的特色,以用来应对不同的业务场景。

总结:继承可以让公共部分的代码得到复用,同时延伸出每个独立类的特色,虽然会加深代码的耦合性,但是合理的运用会减少编码难度,便于对代码进行管理。

  • 4.多态
    我最开始学习的时候觉得多态是我最难理解的一个部分,什么是多态?我粘贴一下菜鸟教程的定义:
    菜鸟教程引用

这个定义说的是同一个行为具有多个不同表现形式,在我的理解中,一种编码应该只有一种表现形式呀,为什么会有多种呢,那我们就不得不说一下实现多态情况的三个必要条件了

①继承
实现多态一定要有继承

②向上转型
父类的引用指向子类的实例,代码为:
多态1

③重写*
重写我觉得是重点,重写是多态的一个必要条件,但是他还有个兄弟叫重载,其他内容只是让我们更好的理解代码与源码,但是重写与重载是会在我们工作中遇到的一种情况。
接下来我来举个例子:当我们继承了某个类,或者实现了某个接口时,我们可以重写父类的方法,修改方法逻辑,从而完成自己想要完成的任务。

⚪重载
OverLoad
在一个类中,我们可以写多个方法名相同的方法,但是参数列表必须不同,从而达到重载效果,下面的图里展示了,两个run()方法,参数列表不同,当我们调用方法的时候我们可以通过不同的入参,找到对应方法并进行调用。
重载
⚪重写
Override
当我们继承了某个类后,我们想要重新编写某个方法的逻辑时,就需要用到Override,例如当我们确定一个对象以后,我们打印这个对象会返回对象的地址,但是当我们重写toString方法后,就可以打印我们想要的内容。
当我们重写toString方法之前
重写toString方法之前
当我们重写了toString方法后,就会改变方法中的逻辑。
重写toString
当我们了解到了这些内容以后,我们就能知道,多态其实就是当我们对一个类中的方法有自己特殊的实现的时候,我们要继承他,与他产生联系。然后重写他的方法,形成自己的逻辑特色,然后创建对象使用这个方法。

④创建对象的几种类型
创建对象的几种类型
多态就是在继承的基础上通过向上转型,限制对象可以使用的方法的范围,将他局限于父类方法子类重写的范围内,同时重写方法,使父类的方法可以重新编写逻辑,形成子类的特色,不同的子类有自己不同的实现方式。

总结:多态就是使父类的方法能够在子类中进行多种不同方式的实现,到底使用哪种方法,在程序运行中才会真正确定(因为程序运行中如果子类没有重写就会调用父类的方法,如果子类重写了就会调用子类的方法。)

  • 5.抽象
    上面的内容大家仔细看的话会发现,当我们继承一个类的时候,其实子类已经拥有了父类的非私有的所有能力,同时还有他自己的扩展能力,那么我们就应该不需要在父类中编写逻辑了,我们只要在父类中确定子类应该有的基本的东西有什么就可以了,不需要在父类中就编写他的逻辑,所以就有了抽象——我们只需要有方法,不需要有逻辑

在类名前使用abstract关键字修饰的类为抽象类,在抽象类中我们只需要编写方法名,同时抽象方法也需要使用abstract关键字修饰。
抽象方法
①抽象类的特点
⚪如果想要创建一个抽象类对象,那么需要重写抽象类中所有的抽象方法

⚪如果子类没有实现抽象父类的所有抽象方法,那么子类也必须是抽象类

⚪抽象类中可以有普通方法,当创建对象或者被继承时,普通方法可以不进行重写

⚪静态方法不能声明为抽象方法

⚪抽象类不一定有抽象方法,但是有抽象方法的一定是抽象类

  • 6.接口
    抽象类抽象到极致就是接口,接口中只定义了形式,而不规定内容,在工作中接口用到的是很频繁的。使用接口,我们就可以根据接口内容开发, 只需要关注编写接口的方法体就可以。

接口需要使用interface关键字修饰
接口定义

类可以被继承,接口可以被实现,实现时使用implements关键字修饰,两者叫法不同但是用途大致相同,Java中只能单继承但是可以实现多个接口。当实现多个接口时如下图,当然我们要注意—实现接口时,要重写接口中所有的抽象方法接口中的方法,默认添加public abstract 关键字,所以我们只需要写返回值与方法名就可以。
多实现

我们要注意一个问题,接口是可以继承的,在Java中,只允许单继承,但是接口可以进行多继承。此时我们实现了这个接口的时候,我们不仅要重写接口的方法,还要重写接口继承的接口的方法!!!接口只能继承接口!!!
接口多继承

当我们想要在接口中写一个普通方法的时候,我们必须使用default修饰符来修饰这个方法
接口中的普通方法
接口中的静态变量与方法都会自动隐藏式添加public关键字修饰。我们不可以通过子类实例来访问父接口的静态方法或变量,只能通过父类名来访问(我们没有用static修饰变量的话,也不影响这个变量称为静态变量)
子类调用父类变量
接口还有一种标记接口的用法,我们继承某个接口时,这个接口可以没有方法,继承这个接口就是为了标记这个类的归属,表示是一个特定的类型,使其拥有某些特别的内容,例如集合类中,有RandomAccess接口定义的集合与没有这个接口定义的集合就分为了两类。

面向接口编程的思想就是如此,在相同或相似的业务逻辑内,我们可以使用相同的一套接口,这样会提高编码的统一性,提高编码效率。

总结:接口就是一套行为规范,为我们的编程定制好了要求与局限,同时在我们继承的过程中,体现了对形式的重视,当我们需要使用的时候在按照具体情况设计对应的方法体内容,使编码变得简单,便于管理。

到了这里,Java语言的基本设计思想就已经复习完了,在这个过程中,我也明白了一些新知识,哪里理解的不对,我也会虚心学习哒。在这部分中还有枚举类型,同步异步等概念,我都想复习一下,但是枚举暂时没看懂,感觉就是一个常量类的感觉,不知道我理解的对不对,如果有小伙伴有了解的话,请在评论区说出自己的观点把,谢谢啦,今天是过年前的最后一天上班,同时祝大家新年快乐啦!新的一年,收获多多!

查看下一篇请戳这里↓
工作中需要用到的Java知识(正则表达式篇)

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值