java之1--10天练习

2 篇文章 0 订阅
1 篇文章 0 订阅
1--10天练习

/**
 * 10天总结练习
 * 注意:按java规范书写程序代码,如果你认为程序有错误,请指出,并说明程序错误原因
 */

//1.写出程序结果 
class Demo{
	public static void func(){
		try{
			throw new Exception();
		}finally{
			System.out.println("B");
		}
	}
	
	public static void mian(String[] args){
		try {
			func();
			System.out.println("A");
		} catch (Exception e) {
			System.out.println("C");
		}
		System.out.println("D");
	}
    //结果: 编译失败!  func()抛出一个编译异常, 没有 catch 和 throws 
    //如果 func()上面有声明编译时异常  ,结果是?  B  C  D 
}

//2.写出程序结果
class Test{
	Test(){
		System.out.println("Test");
	}
}
class Demo1 extends Test{
	Demo1(){
		//super
		System.out.println("Demo");
	}
	public static void main(String[] args){
		new Demo1();   // Test Demo
		new Test();    //Test
	}
}

//3.写出程序的结果
interface A{}
class B implements A{
	public String func(){
		return "func";
	}
}
class Test1{
	public static void main(String[] args){
		A a=new B();
		System.out.println(a.func());
	}
	//结果: 编译失败. 多态中   接口A没有定义func()
}

//4.写出程序结果
class Fu{
	boolean show(char a){
		System.out.println(a);
		return true;
	}
}
class Zi extends Fu{
	public static void main(String[] args){
		int i=1;
		Fu f=new Zi();
		Zi z=new Zi();
		for(f.show('A');f.show('B') && (i++<2);f.show('c')){
			z.show('D');
		}
		System.out.println(i);
	}
	boolean show(char a){
		System.out.println(a);
		return false;  // 结果:  A  B  1
		//return true; // 结果 :  A  B  D  C  B  3 
	}
}
//5.写出程序结果
interface C{}
class D implements C{
	public String test(){
		return "yes";
	}
}
class Test2{
	static C get(){
		return new D();
	}
	public static void main(String [] args){
		C  c=get();
		System.out.println(c.test());
	}
	//结果:编译失败: 多态中 接口 C对象中没有test()方法.
}

//6.写出程序结果 
class  Super{
	int i=0;
	public Super(String a){
		System.out.println("A");
		this.i=1;
	}
	public Super(){
		System.out.println("B");
		i+=2;
	}
}
class Child extends Super{
	public Child(String a){
		System.out.println("C");
		i=5;
	}
	public static void main(String[] args){
		int i=4;
		Super s=new Child("A");
		System.out.println(s.i);
	}
	//结果 : B  C  5
}

//7.补充代码
interface Inter{
	void show(int a,int b);
	void func();
}
class Test4{
	public static void main(String[] args){
		//补充代码, 要求使用 匿名内部类调用两个函数
		Inter i=new Inter(){
			public void show(int a,int b){
				
			}
			public void func(){
				
			}
		};
		i.show(4, 5);
		i.func();
	}
	
}

//8.写出程序结果
class TD{
	int y=6;
	class Inner{
		static int y=3;
		void show(){
			System.out.println(y);
		}
	}
}
class TC{
	public static void main(String [] args){
		TD.Inner ti=new TD().new Inner();
		ti.show();
	}
	//结果:编译失败,非静态内部类中个不可以定义静态成员
	//内部内中如果定义静态成员,该内部类必须被静态修饰.
}

//9.选择题,写出错误答案的原因,用单行注释的方式
class Test5{
	int show(int a,int b){return 0;}
} /**
     下面那些函数可以存在于Test5子类中
     A:public int show(int a,int b){return 0;}   //可以,是重写父类的方法
     B:private int show(int a,int b){return 0;}  //不可以:子类的权限范围必须大于等于父类
     C:private int show(int a,long b){return 0;} //可以:在子类中构成重载
     D:public short show(int a,int b){return 0;} //不可以,以为该类函数不可以和给定函数出现在同一类中,或者父子类中.
     E:static int show(int a,int b){return 0;}   //不可以,静态只能覆盖静态
     
  */
  
//10.写出this关键字的含义,final有哪些特点?
/**
 * this:代表本类对象,哪个对象调用this所在函数,this就代表那个对象.
 * 
 * final:
 *   1.修饰类,变量(成员变量,静态变量,局部变量) 函数.
 *   2.修饰的类不可以被继承
 *   3.修饰的函数不可以被覆盖
 *   4.修饰的变量是一个常量只能赋值一次.
 *   5.内部类只能访问 局部变量中的fianl修饰的变量
 */

//11.写出程序的结果
class Fu1{
	int num=4;
	void show(){
		System.out.println("Show Fu");
	}
}
class Zi1 extends Fu1{
	int num=5;
	void show(){
		System.out.println("Show Zi");
	}
}
class Test6{
	public static void main(String[] args){
		Fu1 f=new Zi1();
		Zi1 z=new Zi1();
		System.out.println(f.num);
		System.out.println(z.num);
		f.show();
		z.show();
	}
	//4  5  Show Zi Show Zi
}

//12.补充代码
interface E{
	void show();
}
interface F{
	void add(int a,int b);
}
class AA implements E,F{
	
	//补充代码
	private int a,b;
	//private int sum;
	public void add(int a,int b){
		this.a=a;
		this.b=b;
		//sum=a+b;
	}
	public void show(){
		System.out.println(a+b);	
		//System.out.println(sum);  //两种方法都可以
	}
}
class Test7{
	public static void main(String [] args){
		AA a=new AA();
		a.add(4,2);
	    a.show();  //通过该函数答应 以上两个数的和.
	}
}

//13.写出程序结果
class Test8{
	public static void main(String[] args){
		try{
			showExce();
			System.out.println("A");
		}catch(Exception e){
			System.out.println("B");
		}finally{
			System.out.println("C");
		}
		System.out.println("D");
	}
	
	public static void showExce()throws Exception{
		throw new Exception();
	}
	
	//结果:  B C  D
}
//14.写出程序结果
class  Super1{
	int i=0;
	public Super1(String s){
		i=1;
	}
}
class Demo2 extends Super1{
	public Demo2(String s){
		i=2;
	}
	public static void main(String [] args){
		Demo2 d=new Demo2("yes");
		System.out.println(d.i);
	}
	//结果 :编译失败 ,因为父类中缺少空参数的构造函数Super1(){}, 或者子类中 通过super明确调用父类中有参数的构造方法.
	
}


//15.写出程序的记过
class Super2{
	public int get(){return 4;}
}
class Demo3 extends Super2{
	public long get(){return 5;}
	public static void main(String[] args){
		Super2 s=new Demo3();
		System.out.println(s.get());
		
	}
	//结果:编译失败,因为子父类中的get()方法没有覆盖,但是子类调用的时候不能明确返回值的类型.
}

//16.写出程序的结果
class Demo4{
	public static void main(String[] args){
		try{
			throw new  Exception();
			System.out.println("A");
		}catch(Exception e){
			System.out.println("B");
		}finally{
			System.out.println("C");
		}
		System.out.println("D");
	}
	//结果:编译失败, throw 和 return ,break contiue 单独存在时, 后面不能有其他的语句.
}

//17.判断下面的选项,错误的请说出原因
class Demo5{
	public void func(){
		//位置1
	}
	class Inner{}
	
	public static void main(String[] args){
		Demo5 d=new  Demo5();
		//位置2
	}
}
/**
 * A: 在位置1写  new  Inner();       //Ok  
 * B: 在位置2写  new  Inner();       //错误: 因为主函数是 static ,如果要访问 Inner 也必须是 static修饰
 * C: 在位置2写 new  d.Inner();     //错误: 转换下  new new Demo5().Inner();
 * D: 在位置2写 new  Demo.Inner();  //错误: 因为 Inner不是static的
 */

//18.写出程序的结果
class Exce0 extends Exception{}
class Exce1 extends Exce0{}

class Test9{
	public static void main(String[] args){
		try {
			throw new Exce1();
			
		} catch (Exception e) {
			System.out.println("Exception");
		}catch(Exce0 e){
			System.out.println("EXce0");
		}
	}
	//结果:编译失败, 多个 catch时候,父类的catch要放在下面.
}

//19.补充代码
interface Inter1{
	void func();
}
class Demo6{
	public static void main(String[] args){
		//补充代码 匿名内部类 实现 调用 show();
		new Demo6().show(new Inter1(){
			public void func(){
				System.out.println("调用了");
			}
		});
	}
	
	void show(Inter1 i){
		i.func();
	}
}

//20.写出程序的结果
class Test11{
	public static String output="";	
	public static void foo(int i){
		try {
			if(i==1)
				throw new Exception();
			output+="1";
		} catch (Exception e) {
			output+="2";
			return;
		}finally{
			output+="3";
		}
		output+="4";
	}
	
	public static void main(String[] args){
		foo(0);
		System.out.println(output);  //结果:  134
		foo(1);
		System.out.println(output);  //结果:  13423
	}
}
//21.建立一个 图形 类 写出  长方形 和圆形的面积 

//22.补足compare函数内的代码 ,,不许添加其他的函数.
class Circle{
	private static double pi=3.14;
	private double radius;
	public Circle(double r){
		radius=r;
	}
	
	public static double compare(Circle[] cir){
		//在这里  补充代码 
		int max=0;  //double max=cir[0].radius;
		for(int x=1;x<cir.length;x++){
			if(cir[x].radius>cir[max].radius)
				max=x;
		}
		return cir[max].radius;
	}
}
class TC1{
	public static void main(String[] args){
		Circle cir[]=new Circle[3];
		cir[0]=new Circle(1.0);
		cir[0]=new Circle(3.0);
		cir[0]=new Circle(4.0);
		System.out.println("最大的半径值是:"+Circle.compare(cir));
	}
	
}

//23.写出程序的结果
class Test12{
	private static int j=0;
	private static boolean methodB(int k){
		j+=k;
		return true;
	}
	public static void methodA(int i){
		boolean b;
		b=i<10 | methodB(4);
		b=i<10 || methodB(8);
	}
	
	public static void main(String[] args){
		methodA(0);
		System.out.println(j);
	}
	//结果:j=4, 因为  i<10 =true  methodB(8)不会执行. 
}

//24. 给员工建模   员工包含 3个属性 姓名,工号 以及工资 经理也是员工 .....


/**
 * 25.在一个类中辨析莪一个额方法 ,这个方法搜索一个字符数组中事发后存在某个字符,如果存在,则放回一个字符现在字符数组中第一出现的位置
 * 需要从0 开始  ,否则 返回 -1 ,要搜索的字符数组和字符串都可以用参数的形式传递给方法,如果传递的数组为null,应该抛瞅 IllegalArgumentException异常
 * 在类的main方法中以各种可能出现得到情况验证该方法编写是否正确. 
 */ 
class Test10{
	public int getIndex(char[] arr,char key){
		if(arr==null)
          throw new  IllegalArgumentException("参数不合法");
       
		for(int x=0;x<arr.length;x++){ //如果为null 就不能调用 length
			if(arr[x]==key)
              return x;
        }
		
        return -1;
	 }
}

//26.补足 compare  函数内的代码,不许添加其他函数
class Circle2{
	private double radius;
	public Circle2(double r){
		this.radius=r;
	}
	public Circle2 compare(Circle2 cir){
		//补足代码
		return this.radius>cir.radius ? this:cir;
	}
}

class Test13{
	public static void main(String[] args){
		Circle2 cir1=new Circle2(1.0);
		Circle2 cir2=new Circle2(2.0);
		Circle2 cir3;
		cir3=cir1.compare(cir2);
		if(cir2==cir1)
			System.out.println("圆1的半径比较大");
		else 
			System.out.println("圆2的半径比较大");
	}
}

### 回答1: 好的,以下是练习-java多路分支之月份数计算的回复: 这个练习是要求我们编写一个Java程序,根据用户输入的月份,计算出该月份有多少。我们可以使用多路分支语句(if-else或switch-case)来实现这个功能。具体实现方法可以参考以下代码: ``` import java.util.Scanner; public class MonthDays { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("请输入月份:"); int month = input.nextInt(); int days = ; switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: days = 31; break; case 4: case 6: case 9: case 11: days = 30; break; case 2: System.out.print("请输入年份:"); int year = input.nextInt(); if ((year % 4 == && year % 100 != ) || year % 400 == ) { days = 29; } else { days = 28; } break; default: System.out.println("输入的月份不正确!"); break; } if (days != ) { System.out.println(month + "月份有" + days + "。"); } } } ``` 以上代码中,我们首先使用Scanner类获取用户输入的月份,然后使用switch-case语句根据月份计算出该月份有多少。在计算2月份数时,我们还需要根据用户输入的年份来判断是否为闰年。最后,我们输出计算结果,如果用户输入的月份不正确,则输出提示信息。 希望这个回复能够帮助到您,如果还有其他问题,请随时联系我。 ### 回答2: Java多路分支是Java编程中的一个重要部分,它通常用于判断某个条件或变量的值,然后执行相应的操作。在本文中,我们将介绍如何使用Java多路分支计算每个月的数。 Java多路分支的基本语法是:if (条件) {执行语句块1} else if (条件2) {执行语句块2} else {执行语句块3}。使用这种语法,我们可以根据条件执行不同的操作。 对于月份数计算,我们需要知道每个月的数。通常,1月、3月、5月、7月、8月、10月和12月都有31;4月、6月、9月和11月都有30;2月有28或29,具体取决于是否为闰年。 我们可以使用Java多路分支来计算每个月的数。我们可以使用一个int变量来表示月份,并根据1到12的不同值分别执行操作。我们可以使用一个switch语句来实现这个过程。 具体实现方法如下: 1. 定义一个int变量表示月份,例如int month = 5; 2. 使用switch语句根据月份计算数,例如: switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: System.out.println("该月共有31"); break; case 4: case 6: case 9: case 11: System.out.println("该月共有30"); break; case 2: System.out.println("输入年份:"); Scanner sc = new Scanner(System.in); int year = sc.nextInt(); if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) { System.out.println("该月共有29"); } else { System.out.println("该月共有28"); } break; default: System.out.println("输入月份不合法"); break; } 在上述代码中,我们首先使用switch语句根据月份进行判断,然后根据不同的月份计算出数。对于2月份,我们需要使用Scanner类来获取用户输入的年份,然后判断是否为闰年,从而计算出2月的数。 在实际编写Java代码时,我们需要注意一些细节。例如,在使用Scanner类时,我们需要先导入java.util.Scanner类;在使用switch语句时,我们需要添加break语句来跳出当前的case块。 总之,练习Java多路分支之月份数计算是一项基础而重要的练习。熟练掌握Java多路分支的使用方法,可以使我们更加高效地编写Java程序。 ### 回答3: 月份数计算是Java多路分支的一个经典练习,通过这个练习可以加深对Java多路分支语句的理解。下面我将介绍Java多路分支语句的概念以及如何实现月份数计算。 Java多路分支语句 Java多路分支语句指的是在程序执行时,需要根据不同的条件执行不同的程序段的语句。Java中多路分支语句有两种:switch语句和if-else语句。switch语句比if-else语句更清晰简洁,特别是当条件分支比较多时。switch语句的一般形式如下: ``` switch (expression) { case value1: // 语句块1 break; case value2: // 语句块2 break; case value3: // 语句块3 break; default: // 默认的语句块 break; } ``` 多路分支语句的实现原理是,程序先计算表达式的值,然后根据表达式的值跳转到指定的语句块。如果表达式的值与任何一个case的值相同,则执行相应的语句块,如果没有相同的值,则执行默认的语句块。 月份数计算 对于月份数计算,我们需要根据输入的月份判断该月份有多少。一年中月份的数有两种情况:30或31,二月份则为28或29。因此,我们需要设计一个程序来判断输入月份具体是多少。 下面是用Java多路分支实现月份数计算的代码: ``` import java.util.Scanner; public class MonthDays { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("请输入月份:"); int month = input.nextInt(); int days = 0; switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: days = 31; break; case 4: case 6: case 9: case 11: days = 30; break; case 2: System.out.print("请输入年份:"); int year = input.nextInt(); if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { days = 29; } else { days = 28; } break; default: System.out.print("月份输入错误!"); } if (days != 0) { System.out.println(month + "月份有" + days + "!"); } } } ``` 上述代码中,我们使用switch语句来判断月份的数,如果月份在1、3、5、7、8、10、12这七个月中,那么该月份有31,如果在4、6、9、11这四个月中,那么该月份有30。对于2月份来说,需要再输入年份,然后根据闰年和平年计算出该月份的数。如果输入的不是1-12的整数,则提示月份输入错误。 总结 通过这个练习,我们不仅加深了对Java多路分支语句的理解,还学习了如何根据特定条件计算数。在实际工作中,多路分支语句也常常用于判断不同的条件,进而执行不同的程序段,它在控制程序流程、提高代码的可读性上有很大的作用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值