新手学习JAVA对于oop中封装、继承、多态的一些感悟

新司机学习JAVA总结(oop)


都说JAVA是一门面向对象的编程语言,其中的一切皆对象。作为一个新手学习JAVA以后,我对于oop有了一定的认识,我想通过这篇博客来总结一下我学习到现在以后,对于oop中几个概念的理解。

封装

封装本意是指将一个或者一些物品重新包装起来,以一个完整的形式再呈现出来。在JAVA语言中,这种对于信息的封装是通过创建类来实现的。在一个新创建的类中,可以包含有不同的属性值和方法。如下图就定义了一个简单的类,其中包含了age和sex两个属性,一个无参构造器和两个方法。图1
封装把原本零散的属性和方法整合到了一个整体,那么当需要使用这些属性和方法的时候就需要实体化相对应的类。实体化类也就是一个新建对象的过程。使用如下图的语法就新建了一个Animal类的实体化对象,这个对象由animal指向。这里的animal就是一种引用数据类型的变量,与int、byte、long等直接数据类型变量相对应。
图2
在实体化完成之后,那么当我需要调用类中的属性和方法就只需要依照如下的语法
animal.age;
animal.sleep();
就可以调用属性和方法了。在方法中有一个比较特殊的方法是构造方法,又叫构造器。一般分为有参构造器和无参构造器。如图1中的Animal()方法就是一个无参构造器。构造器在类实体化的时候进行调用,已完成对于对象的创建以及一些属性的初始化。当然也不是类中所有的属性和对象都需要实体化后才能调用,还有静态属性和静态方法的存在。这涉及到了一些访问控制符。如图1中定义Animal类时,前面加上的public就属于访问控制符,除此之外,还有protected、default(不填)、private。访问控制符主要用于对类、属性以及方法定义时添加,规定访问权限,各个访问控制符的作用范围如下表。

访问控制符/作用范围工程同一包子类自己
public
protected×
default(不填)××
private×××

封装把零散的,繁多的变量和方法依据它们的含义以及用途整合在了一起,在实际使用需要时再进行实体化调用,这对于JAVA的oop有重要意义,它。我总结起来封装对于编程来说有如下好处:
1.封装将数据和方法隐藏起来,不直接出现在主程序中,一定程度上提高了数据的安全性。
2.封装对于方法的包装,让程序员在需要多次使用同一方法时,只需要简单的调用以及传参就可以完成,提高了代码的复用性。
3.让oop成为可能

继承

继承由图3中的语法实现,可以描述为:子类 extends (继承)父类。
图3
继承的特点主要有如下几点:
1.子类一定都有父类,并且只有一个。
2.一个父类可以有多个子类,并且子类之间没有直接联系。
3.子类继承父类,拥有父类所有的属性和方法。
4.子类可以定义自己特有的属性和方法。
5.创建子类对象的时候,一定会先创建父类对象。
6.子类继承了父类的方法,但是可以将方法的实现重新修改掉 - 重写。
7.向上造型。

继承这一个机制,在代码编写中,能起到非常多的作用。主要有以下几点:
1.可以简化代码:当有多个类都有一致的属性或者需要有一样的方法的时候,就可以统一一个父类,在父类中定义属性和方法。
2.可以提高代码的可读性:由于父类的存在,可以比较明确的看出该父类以及其子类的一些共同的属性功能,让他人看代码的时候,更加易于理解。
3.可以使用向上造型:向上造型即声明一个父类对象,而实际创建一个新的子类对象。可以提高代码的扩展性,例如某个对象有时候希望调用父类的方法,有时候有需要调用子类的方法,那么就只需要在子类中改写希望调用的方法即可,不需要创建两个对象。

多态

多态的概念主要有两个方面:重载与重写。
两个概念名字类似但是没有太大的关系。重载是指在一个类中,定义两个方法名完全一致的方法但是方法内的传递的参数不同。这个传递参数的不同可以是参数的类型不同,也可以是参数的个数不同,也可以是参数的顺序不同。需要注意的一点是如果仅有返回值的类型不相同是无法完成方法的重载的。
重载的用途非常的广泛,不仅仅是在我们的日常代码编写中,就是我们常用的各种java.long包中提供的各种类的方法也都有着各种不同的重载。重载的存在一定程度上简化了代码得编写,例如两个方法需要完成一致的目标,但是完成的方式不同,需要的参数也不相同,重载可以让这种情况下方法的的分类更加明确。同时这也能增加代码的可读性,通过传参类型个数来判断方法的实现方式。
重写的概念就涉及到了两个类,子类和父类。上文在继承中提到子类可以直接继承父类的方法并且在子类中调用。但是一个父类可以有很多的子类,那么不是每一个子类的功能都是能通过父类的方法实现的,这时候就需要子类有属于自己的方法。重写可以让子类使用父类的方法名和传参格式,改写方法体来实现自己的目标。这样也能很好地提高代码的统一性、可读性。

总结

OOP是JAVA编程中的一种非常重要的思想,也是一种非常有意思的思想。在代码简单的情况去看待这种方式会显得结构复杂、多余,可读性差。但是在代码量很高的大项目中就恰恰相反,OOP能很好的提高代码的结构性和可读性。这让无论是代码编写者还是第三者来看代码的过程中,都能更加清晰明了代码结构以及意义。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值