JAVA第五章(面向对象中)小结

本文深入探讨了Java的访问控制修饰符,包括public、protected和private的权限范围,并通过代码示例进行验证。同时,讲解了子类如何继承父类的可见属性和方法,以及组合的概念及其在代码复用和松耦合中的作用。此外,还阐述了方法的重载和覆写,展示了多种示例来说明它们的区别和应用场景。
摘要由CSDN通过智能技术生成

 1. Java的访问控制修饰符有哪些?各有什么访问权限?并分别写程序验证。

Java的访问控制修饰符包括:public,protected,private

如图所示:

 例如:protected属性具有包访问权限,可以被同一包中的所有类访问

 

 例如:不能通过对象引用来访问不在同一包的类的protected属性和方法

 

 

例如:子类的类定义中可以访问父类的protected属性和方法,不论是否在同一包 

 

 

 总结

>>访问权限首先看类前的修饰符,当类的修饰符为public时, 则类可以被所有的类所访问(可以import),当为默认时, 则只能为包中的类所访问。在此前提下,再看属性和方法前的修饰符。

>>类前修饰符为public时,当属性和方法前的修饰符为public时,则该属性可以被所有类访问;

>>当属性和方法前为protected修饰时,对于类定义而言,可以被同包中的类和所有子类访问(子类和父类可以不在同一个包中),也就是B+C范围,但对于对象而言,只能被同一个包的类对象所访问,也就是B的范围;

>>当为默认时,只能被同包中的类所访问(比protected访问权限小);当为private时,只能被本类内部所访问 。

 2. 子类对于从父类继承的哪些属性与方法是可见的?请分别写程序进行验证。    

子类继承了父类的所有属性和方法, 但只有public、protected的属性和方法在子类是可见的。

详细一点说:子类在继承父类的时候,首先应该满足父类可被访问,例如当子类和父类不在同一个包当中时,父类修饰符必为public;在父类能被访问的前提下,凡是修饰符为public或是protected的父类属性成员或是方法能被子类所访问; private的属性成员或是方法则不能被访问。

例如:

输出:s35 p35

 

 

 3. 什么是组合?有什么作用?请举例说明。

组合:把一个类当成另一个类的组合成分,从而允许新类直接复用该类的public方法。
作用:不破坏封装,整体类与局部类之间松耦合,彼此相对独立且具有更好的可扩展性。
例如:
        class A{…}
        class B{A a
                …
                }

4. 什么是重载?有什么作用?请构造各种重载示例。    

重载:方法名称相同,参数类型或个数不同

注意:同名同参数但不同类型返回值的方法不是重载,编译不能通过

作用:完成同一功能时可能会遇见不同的情况,提高可读性。

编译器视角: 方法签名=方法名称+参数类型+参数个数 组成唯一键

class Parent{
    public int getScore(){
            return 3;
    }
    public int getScore(int i){
            return i;
    }
}
public static void main(String[] args) {
	System.out.println(add(31,36465,41,654,1,32,165,465,4,3213,246,54,65,465454654));
	System.out.println(add(1,2));
	System.out.println(add(1,2,3));
}

static int add(int... nums) {
	int result = 0;
	for(int i = 0;i < nums.length;i ++) {
		result += nums[i];
	}
	return result;
}

static int add(int num1,int num2) {
	return num1 + num2;
}

static int add(int num1,int num2,int num3) {
	return num1 +num2 + num3;
}

5. 什么是覆写?有什么作用?覆写父类方法的条件有哪些?请举例说明。

覆写:子类对父类参数相同,返回类型相同的同名方法重新进行定义

注意:如果子类定义的方法与父类名称相同,但参数名称不同,则不是覆写,而是重载。

           如果名称相同,参数名称相同,但返回类型不同,则编译不能通过。

作用:对功能进行复用和扩充

覆写父类方法的条件:

>>子类的访问修饰符权限应等于或大于父类,不能变小

>>子类的返回类型能够向上转型成为父类的返回类型

>>异常也要能向上转型为父类的异常

>>方法名、参数类型及个数必须严格一致

>>只能针对非静态、非final、非构造方法

例如:

输出:4 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值