Java基础知识学习06-封装、继承

本文详细介绍了面向对象编程中的封装和继承两大特性。封装通过隐藏类的实现细节并提供公共接口来增强代码的安全性和复用性。继承允许子类继承父类的属性和方法,实现代码复用的同时也需要注意类间耦合的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

封装

概念:将类的某些信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类提供的方法实现对隐藏信息的操作和访问。

特点:提高代码的复用性;

           隐藏类的实例细节,方便修改和实现;

           提高代码的安全性。

实现步骤:修改属性的可见性------>设为private

                 创建getter/setter方法--------->用于属性的读写

                 在getter/setter方法中加入属性控制语句---------->对属性值的合法性的判断

private修饰符

private关键字:私有的,可修饰成员变量和成员方法

              特点:只能在本类中访问被private修饰的成员

代码:

package com.oracle.demo3;
public class Person {
private String name;
private int age;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

public boolean compare(Person p) {
return this.age == p.age;
}
}

测试代码:

package com.oracle.demo3;
public class TestPerson {
public static void main(String[] args) {
Person p1 = new Person();
Person p2 = new Person();
p1.setAge(18);
p1.setName("张三");
p2.setAge(18);
p2.setName("李四");
boolean flag = p1.compare(p2);
if(flag){
System.out.println("两个人年龄相同");
}else{
System.out.println("两个人年龄不相同");
}
}
}

this关键字

this关键字代表当前对象   本类中

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

   this.方法   操作当前对象的方法

成员变量和局部变量的同名问题:

可以在成员变量名前面加上this.来区别成员变量和局部变量

继承

 继承是类与类之间的一种关系,可以说是一种 is  a  的关系     把多个类中相同的内容提取到一个类中。

继承的好处:

                子类拥有父类所拥有的属性和方法;

                实现了代码的复用。

弊端:增强了类与类之间的耦合性。因为开发要求是高内聚低耦合的。

语法规则: class  子类 extends 父类{}

注意:1、Java中,类只支持单继承,不允许多继承,也就是说一个类只能有一个直接父类

      2、多个类可以继承一个父类

          3、Java中,多层继承是可以的,即一个类的父类可以再去继承另外的父类

      4、Java中,子类和父类是一种相对概念,也就是说一个类是某个类父类的同时,也可以是另一个类的子类

继承中成员变量的特点:

 

成员变量:如果子类父类中出现不同名的成员变量,这时的访问是没有任何问题。

          如果子类父类中出现了同名成员变量时,在子类中若要访问父类中的成员变量,必须使用关键字super来完成。super用来表示当前对象中包含的父类对象空间的引用。

继承中成员方法的特点:   就近原则

     子类中的方法和父类中的方法声明是一样的;

      通过子类调用方法:先找子类中有没有这个方法,有就调用。子类中没有就看父类,有就调用。父类中还没有就再接着找,如果没有就报错。

方法的重写

如果子类对父类中的方法不满意可以重写父类的方法,直接在子类中去写,调用的时候会优先调用子类中的方法。

语法规则:返回值类型、方法名、参数类型及个数都要与父类相同。

          重写的方法直接在子类中去写,然后用super关键字去调用父类中的方法。

注意:1、父类中私有方法不能被重写,因为父类的私有方法子类根本不能去继承;

      2、子类重写父类中的方法时,访问权限不能更低;

      3、父类的静态方法,子类必须通过静态方法才能重写。

方法的重载

在本类中出现的方法名一样,参数列表不同的方法,与返回值无关。

 

转载于:https://www.cnblogs.com/Java-125/p/8656298.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值