java入门之浅谈封装,继承,多态。

java中面向对象最基本的三个特征是:封装,继承,多态。

封装:

1.封装概述:

是面向对象编程语言对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界是无法直接操作的。

2.封装原则:

将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问成员变量private,提供对应的getXxx()/setXxx()方法。

3.封装的好处:

(1)通过方法来控制成员变量的操作,提高了代码的安全性。

(2)把代码用方法进行封装,提高了代码的复用性。

(3)良好的封装能够减少耦合。

(4)可以对成员变量进行更精确的控制。

4.实现封装的步骤:

 

private关键字:

private是一个权限修饰符,可以修饰成员(成员变量和成员方法)。作用是保护成员不被别的类使用,被private修饰的成员只在本类中才能访问。

针对privae修饰的成员变量,如果需要被其他类使用,提供get和set方法进行操作。

this关键字:

this.属性:操作当前对象的属性。

this.方法 调用当前对象的方法。

this修饰的变量用于指代成员变量;方法的形参如果与成员变量同名,不带this修饰的变量值的是形参,而不是成员变量;方法的形参没有与成员变量同名,不带this修饰的变量指的是成员变量。

什么时候使用this?

解决局部变量隐藏成员变量的时候,简单来说就是两个变量重名的时候。

记住:方法被哪个对象调用,this就代表哪个对象。

继承:

1.继承概述:

继承是面向对象三大特征之一, 可以使得子类具有父类的属性和方法,还可以在子类中重新定义,追加属性和方法。

2.实现继承的格式:

继承通过extends实现

格式:class 子类 extends 父类 { }

举例:class Dog extends Animal { }

3.继承带来的好处:

1.继承可以让类与类之间产生关系,子父类关系,产生子父类后,子类则可以使用父类中非私有的成员;2. 还提高了代码的复用性(多个类相同的成员可以放到同一个类中);3.提高了代码的维护性(如果方法的代码需要修改,修改一处即可)。

弊端:

继承让类与类之间产生了关系,类的耦合性增强了,当父类发生变化时,子类实现也不得不跟着变化,削弱了子类的独立性。

简单来说就是类与类的耦合性增强了,但是独立性却降低了。

4.什么时候使用继承?

比如A与B,A和B有关联的情况下可以考虑使用,或者当两个类有共同的作用和动作,否则不能滥用继承。

5.方法的重写

概述:

子类中出现了和父类中一模一样的方法声明

方法重写的应用:

当子类需要父类的功能,而功能子类有自己特有内容时,可以重写父类中的方法,这样,即沿袭了父类的功能,又定义了子类特有的内容。如子类如果对继承的父类的方法不满意或者不合适时,可以自己编写继承的方法。

顺便在这里说一下,我目前是在职Java开发,如果在学习Java的过程当中有遇见任何关于学习方法,学习路线等方面的问题,你都可以点击加入 


,这里面聚集了很多正在学习Java技术的初学者,也有不少从事Java开发岗的大佬,与Java相关的问题都可以随时发出来讨论。文件夹整理了最新的Java基础精讲视频教程以及我做Java技术这段时间整理的一些学习手册。

重载和重写的区别:

重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写!

重载(overloading) 是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。

方法的重写(Overriding)和重载(Overloading)是java多态性的不同表现,重写是父类与子类之间多态性的一种表现,重载可以理解成多态的具体表现形式。

注意事项:

1.私有方法不能被重写(父类私有成员子类是不能继承的)。

2.子类访问权限不能更低(public>默认>私有)。

this关键字:

当想访问本类的赋值变量时,可以使用this关键字,不会优先子类局部的范围。如this.age。

this访问本类构造方法:this()

this访问本类成员方法:this.成员方法()

super关键字:

当想访问本类父类的变量时,可以使用super,即使用父类的变量。如super.age

访问父类构造方法:super()

访问父类成员方法:super.成员方法()

final关键字:

final关键字是最终的意思,可以修饰成员方法,成员变量,类。

特点:

修饰方法:表明该方法是最终方法,不能被重写;修饰变量:表明该变量是常量,不能再次被赋值;修饰类:表明该类是最终类,不能被继承。

final修饰局部变量:

当变量是基本类型情况时,final修饰指的是基本类型的数据值不能发生改变。

当变量是引用类型情况时,final修饰指的是引用类型的地址值不能发生改变,但是地址里面的内容是可以发生改变的。

static关键字:

static关键字是静态的意思,可以修饰成员方法,成员变量。

特点:

1.被类的所有对象共享,这也是判断是否使用静态关键字的条件。

2.可以通过类名调用,当然,也可以通过对象名调用,推荐使用类名调用。

访问特点:

总结:静态成员方法只能访问静态成员,非静态都可以访问。

继承中成员方法的访问特点:

多态:

1.概念:

同一个对象,在不同时刻表现出来的不同形态。简单来说多态就是对象的多种形态。

多态的前提:

要有继承或实现关系

要有方法的重写

要有父类引用指向子类对象

2.多态的成员访问特点

成员访问特点

成员变量

编译看父类,运行看父类

成员方法

编译看父类,运行看子类

为什么成员变量和成员方法的访问不一样?

因为成员方法有重写,而成员变量没有。

3.多态的好处:

提高了程序的扩展性,定义方法的时候,使用父类作为参数,将来在使用的时候,使用具体的子类型参与操作。

弊端:不能使用子类的特有功能。

4.多态中的转型

向上转型:

格式如:Animal a=new cat();a.eat()

向下转型:

格式如:Cat c=(Cat)a; c.eat(); c.playgame();--------playgame是子类特定的方法,使用向下转型就可以输出子类特定的方法。

5.多态的实现方式

方式一:重写

方式二:接口

方式三:抽象类和抽象方法

6.总结

多态可以简单理解成就是为了当在不同时刻时做出不同的反应,也为了方便程序的编写和简洁,在父类中就不再编写方法的具体实现;当有人继承后,再在子类中具体实现。

Java编程学习交流圈子,QQ群:603835449【点击进入】
分享(源码、项目实战视频、项目笔记,基础入门教程)
欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值