Java面向对象 ------- 封装与继承

本文详细介绍了面向对象编程中的封装原则,强调了封装对信息安全性、系统松耦合和代码重用性的提升。通过设置private属性和get/set方法,实现了对外部的访问控制。同时,探讨了静态成员的特性,如静态变量和静态方法的存储与访问。此外,文章还阐述了继承的概念,解释了如何使用extends关键字实现继承,以及继承带来的优缺点。通过对父类和子类的分析,展示了继承在代码复用和维护性方面的优势。
摘要由CSDN通过智能技术生成

面向对象三大特征之一:封装

封装的原则

把对象尽可能多的属性藏在类的内部,只能使用公开的方法去访问

为什么使用封装

保证信息的安全和有效性 提高系统的松耦合,提高系统的独立性 提高代码的可重用性 降低构建大型系统的风险

如何使用

使用private就能将类中对象的属性和方法封装起来,只能在类中被访问,所以调用类中的方法可以对其访问,一般与其配套的set,get方法来对属性进行赋值,获取,同样的在这两个方法中可以设定一些筛选和判断的操作,从而满足需求

set方法

get方法

类成员的访问修饰符

 

Static

static可以用来修饰成员变量,成员方法,代码块,被static修饰的属性和方法就属于类,不再属于对象,可以通过对象名直接访问(也可对象名访问,一般不建议),被static修饰过的称为静态变量,静态方法,静态代码块

普通代码块

{        

     //代码块

}

执行时机:创建对象时执行,每创建一次执行一次

静态代码块

static{        

     //静态代码块

}

静态代码块(当虚拟机加载类时就会执行静态代码块)
                 只会执行一次  只有加载类时执行

static修饰的属性和方法与普通的区别

static修饰的属性和方法属于类(class类型)
普通的属性和方法属于对象

类的成员变量包括  实例变量,类变量(静态变量)

实例变量在类中的内存地址可以有多个,每创建一个新对象则会分配一个新地址

静态变量即被static修饰的变量,是类的变量,在类中只能有一个内存地址,无论哪个对象去对这个变量去操作实际都在使用同一个,在类中可以被其他方法访问,在其他类中可以通过类名访问

 

静态变量在堆内存中只有一份,单独于对象的属性存储空间  属于类的  修改一份则会整体都会随着变

打印结果  age是25,原因就是age是静态变量,User类中所有的对象都在使用同一个age,代码中最后一个修改age的值是user2  将age修改成25

静态方法和实例方法访问的区别

一个类中静态方法只能直接调用静态属性或者方法,

实例方法可以直接调用静态属性和方法,也可以直接调用实例的属性和方法

面向对象三大特征之一:继承

什么叫继承


继承是面向对象的三大特征之一  可以使得子类具有父类的属性和方法,还可以在子类中重新定义,追加属性和方法,多个类都有相同的属性和方法,从代码复用的角度可以考虑提取公共的属性和方法到父类中,子类继承父类就可以了

如何使用继承

使用extends关键字

public class 子类名 extends 父类名{}
父类也被称为基类和超类
子类也称为派生类

子类继承父类的哪些内容 

简单来说就是子类能访问到的内容 

不能被继承的有private修饰的成员,子类和父类不在同一个包中没有被public和protected修饰的成员,构造方法

 

 一个子类只能有一个直接的父类

继承是Java中实现代码重用的重要手段之一。Java中只支持单根继承,即一个类只能有一个直接父类

子类的特点:  

子类可以有父类的内容  还可以有自己特有的内容

继承的长短处:

继承的好处:
提高代码的复用性,维护性(当代码需要维护只要维护父类的代码即可)

继承的弊端
削弱子类的独立性,父类变化,子类不得不变,类的耦合性增强

在子类方法中访问一个变量


先在子类局部范围找   子类成员范围找  父类成员范围找  如果都没有就报错(不考虑父类的父类)

 this代表本类对象的引用
 super代表父类存储空间的标识(可以理解为父类对象的引用)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值