Java程序设计:必实验2 类的高级应用

(1)编写一个Athlete类。该类包含三个成员变量name、sport和medal,分别代表一个运动员的姓名、最擅长的运动项目名称和在2023年亚运会获得的奖牌数量。在该类中重写Object类的toString方法,当调用它重写的toString方法时,输出这个运动员的姓名、运动项目和奖牌数量。

package 必实验2;
//定义Athlete类
class Athlete
{
	String name; //运动员的姓名
	String sport;//运动项目
	int medal;   //金牌数量
	//含参构造函数,给成员变量赋值
    public Athlete(String a,String b,int c) {
		name = a;
		sport = b;
		medal = c;
	}
    //重写Object类的toString方法
    public String toString()
    {
    	String result;
    	result = "姓名:"+name+"\n"+"运动项目:"+sport
    			+"\n"+"金牌数量:"+medal;
    	return result;
    }
}
public class task1 {
	public static void main(String[] args) {
		//创建一个Athlete的对象athlete
		Athlete athlete;
		athlete = new Athlete("王楚钦","乒乓球",4);
        System.out.println(athlete.toString());
	}
}

(2)在一个包中定义一个默认访问权限控制的类DefaultClass,然后在该包以及另一个包中分别定义类来测试DefaultClass类中的private, default, protected和public数据成员的访问控制能力。

总结:

同一个包中的类,无需import即可访问DefaultClass类,且可以访问DefaultClass类中public和protected成员变量以及public成员方法,但是不可以访问另一个包中的默认访问权限的类。

package task2;

class DefaultClass {
	  //分别定义private,protected,public三个成员变量
      private int private_id;
      protected String protected_phoneNumber;
      public String public_gender;
      public DefaultClass(int a,String b,String c)
      {
    	  private_id = a;
    	  protected_phoneNumber = b;
    	  public_gender = c;
      }
      //展示成员变量的各个值
      public void Display()
      {
    	  System.out.println("private_id:"+private_id);
    	  System.out.println("protected_phoneNumber:"+protected_phoneNumber);
    	  System.out.println("public_gender:"+public_gender);
      }
}
package task2;

public class Test_DefaultClass {
	public static void main(String[] args) {
		//声明defaultClass对象
		DefaultClass  defaultClass = new DefaultClass(100,"33045364", "男");
		
		//测试private实例,不可访问
        //System.out.printfln("defaultClass.private_id:"+defaultClass.private_id ); 
		
		//测试protected实例,可访问
		System.out.println("defaultClass.protected_phoneNumber:"+defaultClass.protected_phoneNumber );  
		
		//测试public实例,可访问
		System.out.println("defaultClass.public_gender:"+defaultClass.public_gender );
		
        //测试public方法,可访问
		defaultClass.Display();
	}
}
package 必实验2;

import task2.DefaultClass;

public class Test_task2 {
	static public void main(String []args) {
	        //声明defaultClass对象,不可创建
			DefaultClass p2 = new DefaultClass(100,"33045364", "男");
			
			//测试private实例,不可访问
	        //System.out.printfln("p2.private_id:"+p2.private_id ); 
			
			//测试protected实例,不可访问
			//System.out.println("p2.protected_phoneNumber:"+p2.protected_phoneNumber );  
			
			//测试public实例,不可访问
			//System.out.println("p2.public_gender:"+p2.public_gender );
			
	        //测试public方法,不可访问
			//p2.Display();
	}
}

(3)在一个包中定义一个public访问权限控制的类PublicClass,然后在该包以及另一个包中分别定义类来测试PublicClass类中的private, default, protected和public数据成员的访问控制能力。

总结:

同一个包中的类,无需import即可访问PublicClass类,且可以访问PublicClass类中public和protected成员变量以及public成员方法;不同包中的类,需要import PublicClass所在的包才能访问,且可以访问PublicClass类中public成员变量以及public成员方法,但是不可以访问protected成员变量了。

package task3;

public class PublicClass {
	//分别定义private,protected,public三个成员变量
	private int private_a;
    protected int protected_b;
    public int public_c;
    public PublicClass(int a,int b,int c)
    {
  	  private_a = a;
  	  protected_b = b;
  	  public_c = c;
    }
    //展示成员变量的各个值
    public void Display()
    {
  	  System.out.println("private_a:"+private_a);
  	  System.out.println("protected_b:"+protected_b);
  	  System.out.println("public_c:"+public_c);
    }
}
package task3;

public class Test_PublicClass {
	static public void main(String []args) {
       //声明PublicClass对象
		PublicClass  publicClass = new PublicClass(1,2,3);
		
		//测试private实例,不可访问
        //System.out.printfln("publicClass.private_a:"+publicClass.private_a ); 
		
		//测试protected实例,可访问
		System.out.println("publicClass.protected_b:"+publicClass.protected_b );  
		
		//测试public实例,可访问
		System.out.println("publicClass.public_c:"+publicClass.public_c );
		
        //测试public方法,可访问
		publicClass.Display();
	}
}
package 必实验2;

import task3.PublicClass;

public class Test_task3 {
	static public void main(String []args) {
	       //声明PublicClass对象
			PublicClass  p3 = new PublicClass(1,2,3);
			
			//测试private实例,不可访问
	        //System.out.printfln("p3.private_a:"+p3.private_a ); 
			
			//测试protected实例,不可访问
			//System.out.println("p3.protected_b:"+p3.protected_b );  
			
			//测试public实例,可访问
			System.out.println("p3.public_c:"+p3.public_c );
			
	        //测试public方法,可访问
			p3.Display();
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值