[四]java作业

1.构造函数可否为private、protected?

import java.util.Random;
import java.util.Arrays;

class test {
	public static void main(String[] args) {
		tmp num1=new tmp();
		tmp num2=new tmp(1);
		tmp num3=new tmp(1.0);
		/*int[] num=new int[20];
		java.util.Random r=new java.util.Random();
		for (int i=0;i<num.length;i++) {
			 num[i]=(r.nextInt()%20+20)%20;
		}
		for (int i : num) {
			System.out.print(i+" ");
		}
		Arrays.sort(num);
		System.out.println("");
		for (int i : num) {
			System.out.print(i+" ");
		}//*/
	}
}

class tmp{
	public tmp()
	{
		System.out.println("public");
	}
	public tmp(int i)
	{
		System.out.println("private");
	}
	public tmp(double i)
	{
		System.out.println("protected");
	}
}

输出:


2.什么时候把父类中的成员属性设置为私有?举例

不希望被外部调用的方法和成员应该设为私有。

例:对外公开的api,无需将api内部调用的函数设为public,只需设为private就行了。

3.举例public、private、defualt、protected在类、类的属性、类的方法调用。

test.java

import show.show;

class test extends show{
	public static void main(String[] args) {
		test num=new test();
		num.showinfo1();
		num.showinfo4();
	}
}

show.java

package show;

public class show {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		show num=new show();
		num.showinfo1();
		num.showinfo2();
		num.showinfo3();
		num.showinfo4();
	}
	public void showinfo1()
	{
		System.out.println("public");
	}
	private void showinfo2()
	{
		System.out.println("private");
	}
	void showinfo3()
	{
		System.out.println("default");
	}
	protected void showinfo4()
	{
		System.out.println("protected");
	}
}

class tmp extends show{
	public static void main(String[] args) {
		tmp num=new tmp();
		num.showinfo1();
		//num.showinfo2();//IDE提示不可访问
		num.showinfo3();
		num.showinfo4();
	}
}

4.构造器互相调用

class test {
	private String strtmp;
	public test(int num){
		strtmp=num+" is ";
	}
	public test(String str){
		this(1);
		strtmp+=str;
	}
	public void show(){
		System.out.println(strtmp);
	}
	public static void main(String[] args) {
		test n=new test("int");
		n.show();
	}
}

输出:

1 is int

5.Supper()调用父类指定构造器

class show{
    private int i;
    public show(){
        i=1;
    }
    public void showinfo(){
        System.out.println("i = "+i);
    }
}

class test extends show{
    public test(){
        super();
        showinfo();
        System.out.println("子类");
    }
    public static void main(String[] args) {
        test n=new test();
    }
}
输出:

i = 1
子类


6.完成一个覆盖的例子(修改其返回值)

class show{
	private int i;
	public void show(int i){
		this.i=i;
	}
	public int geti(){
		return i;
	}
}

class test extends show{
	private int i;
	public int geti(){
		return i*i;
	}
	public static void main(String[] args) {
	}
}


7.Super与this的使用,及两个方法名一样参数一样,返回值不一样  举例

class show{
    public int getarea(int i,int j){
        return i*j;
    }
}

class test extends show{
    public double getarea(double i){
        return i*i;
    }
    public static void main(String[] args) {
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值