封装、this、构造方法、继承

封装*

面向对象的程序设计中(oop),包含三大特征.我们以后开发程序,必须要体现出面向对象的三大特征,没有体现
出现三大特征,不是在用面向对象思想开发程序.
●封装
●继承
●多态
封装概念
●封装的定义:隐藏具体的实现细节,对外暴露使用方式.
●现实中的封装实例,笔记本就是例子,硬件看不到,有什么不知道.键盘鼠标可以操作
封装的好处
●提升安全性
●提高程序的复用性
●提高程序的可扩展
封装的实现
●修饰符,也是权限修饰符 private (私有的)
。private成员修饰符,不能写在方法里面
。被private修 饰的成员,访问权限是最低的
。私有修饰的成员,只能在本类使用,出去定义的类,就无效
●private私有的修饰, 只是封装的一种体现形式,不能完全代表封装
提高公共的访问方式
●方法的形式出现,定义公共方法,让外界访问私有修饰的成员
●方法:对类的成员变量,赋值或者是取值操作
。赋值方法名: set开头
。取值方法名:get开头
this关键字
this翻译为这个,这里.
this程序中的含义: this表示当前对象的引用(this本质上理解为就是一个对象)
this理解为:哪个对象调用的,this就表示哪个对象
●this用法 : this用于区分成员变量和局部变量的同名问题。
this.变量名:表示类中的成员变量
。变量名:表示方法的具备变量

this语句

this的另一种用法

  • this成员变量,区分成员变量和局部变量同名
  • 语句用法 this()
  • this语句的使用
  • 。 this()只能写在构造方法的有效代码第一行
  • 。this()语句用来在构造方法中,去调用另一个构造方法

成员变量和局部变量区别
●变量的定义.上区别
。局部变量定义在方法内部,方法参数 。成员变量定义在方法外部,类的里面●变量的作用域上区别
。局部变量作用在方法内部,作用在定义的- -对{}里面
。成员变量作用于整个的类中
●变量的内存位置。局部变量,跟随的方法,进入方法栈
。成员变量,跟随对象进入到堆内存
●变量的生命周期不同
。局部变量,跟随方法出栈销毁,相对较短
。成员变量,跟随对象进入到堆内存等待JVM进行垃圾回收,相对较长●变量的初始化值不同
。局部变量,不赋值不能使用,没有默认值
。成员变量,在堆内存,具有默认值的
构造方法
构造方法,称为构造器(Constructor). 构造方法也是方法,作用是创建对象的时候使用,可以为对象进行初始化操作.
构造方法定义和作用
●权限修饰符
●构造方法,没有返回值类型, void不能写
●构造方法的名字,有严格限制,必须和类名- -致(一模- -样)
●构造方法不需要return语句
●作用:在创建对象的时候使用,其他的情况,和构造方法无关
构造方法实现对象的初始化
什么是对象的初始化操作:在对象的创建过程中,在new对象的时候,使用构造方法,为成员变量赋值,这个动作就称为对象的初始化操作!
思考问题
构造方法已经完成了,对象初始化操作中,成员变量赋值了,我们是否还需要set方法赋值?
肯定需要,以后修改成员变量的数据使用set方法来实现
构造方法的内存
构造方法也是方法,运行必须进入栈内存
构造方法的调用者是创建的对象(创建对象,称为实例化对象),对象会将地址传递到构造方法的this关键字
对象的半初始化
成员变量赋值,默认值,到达这个步骤,称为对象的半初始化状态!
对象调用构造方法:构造方法进入栈内存
构造方法:为成员变量赋值,对象床架完毕
:假如:构造方法,没有为成员变量赋值
构造方法结束,栈内存取出,赋值
对象的创建顺序:
●对象先在堆内存中,划分空间 (内存地址有了)
●初始化成员变量赋值默认值,赋定义的值
●对象调用构造方法,为成员变量赋值
。如果构造方法没有赋值成员变量,就使用默认的或者定义的时候直接的赋值
●对象才会将地址,赋值到引用变量p
默认构造方法
对于任何的一个类,都必须具有构造方法.
默认构造方法
■在一个类中,如果我们不去定义构造方法,产生一 个默认的构造方法,是有编译器javac添加的
默认构造方法:无参数的构造方法public 构造方法名(){}如果我们自己手写了构造方法,默认的就没有了2.显示定义构造方法我们自己写的构造方法,称为显示定义,无论构造方法怎么写,默认的就没有了

构造方法的·重载

构造方法也有重载特性:同一个类中,允许定义多个同名的方法,参数列表不同,就是重载
构造方法同样可以定义多次

继承

两个案例出现了重复程序,共性进行了抽取,放在类一个类中 ,重要学生类,老师类和Person
产性了某些关系,就可以直接使用person类的内容了
产生出了父好关系,在程序中称为继承关系
继承:类和类直接产生的关系,继承关系,包含父与子

继承的好处

●继承是共性的抽取
●继承有效的减少代码量
●提高程序的复用性和扩展性
●面向对象的第三大特征多态,多态的实现前提就是继承

继承的弊端

●继承后,类和类之间的耦合性增强(紧密连接性)
●一个类继承另-一个类后,不能再继承其他类了(单继承弊端)

Java中的单继承

●Java语言只支持单继承,不支持多继承
。一个类只能同时继承另一个类
●Java语言支持多层继承称为多重继承

继承

继承后类和类之间关系的说法
class A extends B{} A类是B类的-种,谁是谁的1种

继承后子类和父类之间的成员变量特点

●成员变量特点:如果子类自己有,就是使用自己的,如果自己没有使用父类继承
●方法中调用本类的成员this.调用
●要是调用父类的成员,关键字super.调用

super关键字

在继承中,super关键字用来调用父类的成员,子类中调用自己的成员是this,调用父类的成员是super
super:表示父类的内存中的存储位置

继承后子类和父类之间成员方法特点

当子类中出现了和父类-模- -样的方法, 这样的现象称为子类重写父类的方法

  • 方法的重写
  • 方法的重载(overload),同一个类中,方法名- -样,参数列表不同
  • 方法的重写(override),子类中的方法和父类的方法- -样
  • 运行特点:如果子类重写了父类的方法(子类自己有),运行子类的如果子类没有,运行父类继承的
  • 方法重写的注意事项
    . 重写的时候,子类方法的权限必须大于或者等于父类方法的权限)
    父类的方法是private修饰的,但是私有修饰的成员,子类不知道父类有这个成员,继承不过来,因此就不存在重写的问题
    继承后子类和父类之间的构造方法特点
    特点:子类的构造方法,第一行有一个默认的隐式的代码,super()
    不写super(),也存在,java编译器帮写
    super(),调用父类构造方法
    如果父类中,没有无参数的构造方法
    子类的构造方法中,我们自己要手写一个super(传递参数)
this()和super()

this 访问本类成员
super调用父类成员
确定:构造方法第一行代码,默认的是super
this()和super()在构造方法中,都是站在的一行,不能同时出现,只能选择一个
写this)的构造方法,会通过其他的构造方法,间接调用到父类构造方法

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值