作业11 Java面向对象 - 常用类

第1关:Object类

package case1;

import java.util.Scanner;

public class ObjectTest {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int num1 = sc.nextInt();
		int num2 = sc.nextInt();
		Demo d1=new Demo(num1);// 在测试类中创建Demo类对象d1,传入输入值num1, d1调用toString方法并打印输出该值
		Demo d2=new Demo(num1);// 创建Demo类对象d2,同样传入输入值num1,打印判断d1和d2是否相等(实际是比较地址)
		/********* Begin *********/

System.out.println(d1.toString());


if(d1.equals(d2)){
System.out.println("true");
}
else {
    System.out.println("false");
}
		/********* End *********/

        // 创建Person类对象p,传入输入值num2,打印判断d1和p是否相等(实际是比较地址)
		/********* Begin *********/
Person p=new Person(num2);
		if(d1.equals(p)){
			System.out.println("true");
		}else{
			System.out.println("false");
		}

		/********* End *********/
	}
}

class Demo {
	private int num;

	public Demo(int num) {
		this.num = num;
	}

	public boolean equals(Object obj) // Object obj = new Demo()
	{
		if (!(obj instanceof Demo)) // 判断obj是否和Demo是同类
			return false;
		Demo d = (Demo) obj; // 将父类的引用(Object)向下转换为子类(Demo)
		return this.num == d.num;
	}

	public String toString() {
		return "Demo:" + num; // 返回对象的值(每一个对象都有自己的特定的字符串)
	}
}

class Person {
	private int num;

	public Person(int num) {
		this.num = num;
	}
}

第2关:JAVA基础类型包装类-练习

  • 编写测试类,输入int型值aa传递给Integer类对象aString型值bb传递给Integer类对象b,输入int型值caabbc对应的数值相等;

  • 输入String型值str11传递给String类对象str1,输入String型值str22传递给String类对象str2str1str2对应的内容相同;

  • 打印输出a == ba == cb == ca.equals(b)

  • 打印输出str1 == str2str1.equals(str2)

    package case2;
     
    import java.util.Scanner;
     
    public class WrapperTest {
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		int aa = sc.nextInt();
    		String bb = sc.next();
    		int c = sc.nextInt();
    		String str11 = sc.next();
    		String str22 = sc.next();
    		// 包装类中“==”与equals的用法比较
    		// 值得注意的是,包装类中的equals方法和String类一样,都是重写了Object类中的equals方法,因此比较的是内容而不是地址,
    		// 而“==”比较的依然是引用变量的地址,只是当包装类型和与之相对应的基本类型进行“==”比较时会先做自动拆箱处理。
    		/********* Begin *********/
    		Integer a=new Integer(aa);
    		Integer b=Integer.parseInt(bb);
    		String str1=new String(str11);
    		String str2=new String(str22);
    		System.out.println(a==b);
    		System.out.println(a==c);
    		System.out.println(b==c);
    		System.out.println(a.equals(b));
    		System.out.println(str1==str2);
    		System.out.println(str1.equals(str2));
     
     
    		/********* End *********/
    	}
    }

    第3关:String&StringBuilder&StringBuffer类-练习

  • package case3;
    
    import java.util.Scanner;
    
    public class StringTest {
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		String str = sc.next();
    		// String substring(int start,int end)
            // 截取字符串,传入的两个参数分别为要截取边界的下标
            // 在java api 中,通常使用两个数字表示范围时,都是含头不含尾,即包含起始下标对应的内容,但不包含结束下标的处对应的内容
            // String toUpperCase() 将当前字符串中的英文部分转换为全大写
    		/********* Begin *********/
    String str1=str.substring(12,str.lastIndexOf('.'));
    		if(str1.indexOf('.')>0){
    			str1=str1.substring(0,str1.indexOf('.'));
    		}
    		System.out.println(str1);
    		str1=str1.toUpperCase();
    		System.out.println(str1);
    
    
    		/********* End *********/
    	}
    }

    第4关:Random类

    请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下:

  • 设计一个密码的自动生成器:密码由大写字母/小写字母/数字组成,生成六位随机密码。

  • 分别以123作为种子数创建Random对象,生成六位随机密码进行测试。

  • 具体输出要求请看测试说明。

  • package case4;
    
    //密码的自动生成器:密码由大写字母/小写字母/数字组成,生成六位随机密码
    import java.util.Random;
    import java.util.Scanner;
    
    public class RandomTest {
    	public static void main(String[] args) {
    		// 定义一个字符型数组
    		char[] pardStore = new char[62];
    		// 把所有的大写字母放进去 把所有的小写字母放进去 把0到9放进去
    		/********* Begin *********/
            for(int i=0;i<26;i++){
    			pardStore[i]=(char)('A'+i);
    			pardStore[26+i]=(char)('a'+i);
    		}
    		for(int i=0;i<10;i++){
    			pardStore[52+i]=(char)('0'+i);
    		}
    
    
    		/********* End *********/
    		// 分别以1、2、3作为种子数 生成6位随机密码
    		Scanner sc = new Scanner(System.in);
    		int seed = sc.nextInt();
    		/********* Begin *********/
    Random r=new Random(seed);
    		String str="";
    		int[] arr=r.ints(6,0,62).toArray();
    		for(int i=0;i<6;i++){
    			str+=pardStore[arr[i]];
    		}
    		System.out.print(str);
    
    
    		/********* End *********/
    	}
    }

    第5关:Date类和SimpleDateFormat类的用法

    package case5;
     
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.Scanner;
     
    public class DateTest {
    	public static void main(String[] args) throws ParseException {
    		// 键盘录入你的出生年月日 格式为yyyy-MM-dd
    		// 把该字符串转换为一个日期
    		// 通过该日期得到一个毫秒值
    		// 获取2020年10月1日的毫秒值
    		// 两者想减得到一个毫秒值
    		// 把该毫秒值转换为天 打印输出
    		Scanner sc = new Scanner(System.in);
    		String line = sc.nextLine();
    		/********* Begin *********/
    		SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
    		Date d1=sdf.parse(line);
    		Date d2=sdf.parse("2020-10-01");
    		long diff=d2.getTime()-d1.getTime();
    		diff=diff/86400000;
    		System.out.println("你的出生日期距离2020年10月1日:"+diff+"天");
     
    		/********* End *********/
    	}
    }

    第6关:Math类

    package case6;
     
    import java.util.Scanner;
    import java.lang.Math;
     
    public class MathTest {
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		int a1 = sc.nextInt();
    		int a2 = sc.nextInt();
    		int a3 = sc.nextInt();
    		int a4 = sc.nextInt();
    		double a5 = sc.nextDouble();
    		double a6 = sc.nextDouble();
    		double a7 = sc.nextDouble();
    		double a8 = sc.nextDouble();
    		double a9 = sc.nextDouble();
    		double a10 = sc.nextDouble();
    		double a11 = sc.nextDouble();
    		/********* Begin *********/
    		System.out.println(Math.sqrt(a1));
    		System.out.println(Math.cbrt(a2));
    		System.out.println(Math.pow(a3,a4));
    		System.out.println(Math.max(a5,a6));
    		System.out.println(Math.min(a5,a6));
    		System.out.println(Math.abs(a7));
    		System.out.println(Math.ceil(a8));
    		System.out.println(Math.floor(a9));
    		System.out.println(Math.rint(a10));
    		System.out.println(Math.round(a11));
     
    		/********* End *********/
    	}
    }

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值