Java学习记录-4(面向对象2)

1. Java的访问控制修饰符有哪些?各有什么访问权限?

在这里插入图片描述
在这里插入图片描述

  • 演示public类的protected属性访问
    • 同一个包
      在这里插入图片描述
    • 不同包
      在这里插入图片描述
    • 不同包继承关系
      在这里插入图片描述
  • 演示public类的static属性修饰的访问控制
    在这里插入图片描述
  • 演示public类的private 属性的单例设计模式
    在这里插入图片描述

2. 子类对于从父类继承的哪些属性与方法是可见的?

子类继承了父类的所有属性和方法, 但只有public、protected的属性和方法在子类是可见的。
在这里插入图片描述
在这里插入图片描述

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

  • 使用多个已有的对象组合为一个功能更加复杂强大的新对象,称为组合
  • 作用:整体类可以对局部类进行包装,封装局部类的接口,提供新的接口
class Soap{
	private String s;
	public Soap() {
		// TODO Auto-generated constructor stub
		System.out.println("Soap()");
		s="Constructor";
	}
	public String toString(){
		return s;
	}
}
public class Bath {
	private String s1="happy",s2="happy",s3,s4;
	private Soap castille;
	private int i;
	private float toy;
	public Bath(){
		System.out.println("Inside Bath()");
		s3="Joy";
		toy=3.14f;
		castille=new Soap();
	}
	{i=47;}
	public String toString(){
		if(s4==null)
			s4="Joy";
		return  
				"s1 = "+s1+"\n"+
				"s2 = "+s2+"\n"+
				"s3 = "+s3+"\n"+
				"s4 = "+s4+"\n"+
				"i = "+i+"\n"+
				"toy = "+toy+"\n"+
				"castille = "+castille+"\n";
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Bath x= new Bath();
		System.out.println(x);
	}
}
/* output
Inside Bath()
Soap()
s1 = happy
s2 = happy
s3 = Joy
s4 = Joy
i = 47
toy = 3.14
castille = Constructor
*/

4. 什么是重载?有什么作用?请举例说明。

  • 在类中定义了多个同名而不同内容参数的成员方法时,称这些方法是重载方法。
  • 作用:不用为了对不同的参数类型或参数个数,而写多个函数,即一个内容,可以实现多个功能
class Parent{
    public int getScore(){
        return 3;
    }
    public int getScore(int i){
        return i;
    }
 }

5. 什么是覆盖?有什么作用?请举例说明。

  • 子类对父类参数相同、返回类型相同的同名方法重新进行定义,这种多态被称为覆盖。
  • 作用:在子类中重写父类的功能方法,达到不修改父类就能改动父类功能的目的。
class Parent {
	public int getScore()
	{ return 3; }
    public String getCountryName()
    { return “China”; }
}
class Son extends Parent {
    public int getScore(){
    	return 4;
    }
}
public class RunSon{
    public static void main(String args[]){
    	Son  s = new Son();
    	System.out.println(s.getScore());
    	System.out.println(s.getCountryName()); 
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值