Educoder Java面向对象 - 常用类

Educoder Java面向对象 - 常用类

求大佬带带我 orz

纯菜鸡,如果有更好的Idea可以分享给我,我也想学

第1关:Object类

import java.util.Scanner;

public class ObjectTest {
	public static void main(String[] args) throws CloneNotSupportedException {
		Scanner sc = new Scanner(System.in);
		int num1 = sc.nextInt();
		int num2 = sc.nextInt();
		// 在测试类中创建Demo类对象d1,传入输入值num1, d1调用toString方法并打印输出该值
		// 创建Demo类对象d2,同样传入输入值num1,打印判断d1和d2是否相等(实际是比较地址)
		/********* Begin *********/
		Demo d1 = new Demo(num1);
		System.out.println(d1.toString());
		Demo d2 = new Demo(num1);
		Demo d3 = (Demo) d1.clone();
		if(d1.equals(d2)) {
			System.out.println("true");
		}else {
			System.out.println("false");
		}
		/*
		 if(d1.equals(d3)) { 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 implements Cloneable{
	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; // 返回对象的值(每一个对象都有自己的特定的字符串)
	}
	public Object clone() throws CloneNotSupportedException {
        return super.clone();
}
}
class Person {
	private int num;

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

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

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 = new Integer(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类-练习


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 *********/
        StringBuilder s = new StringBuilder(str);
        s = new StringBuilder(s.substring(s.indexOf(".") + 1));
        s = new StringBuilder(s.substring(0, s.indexOf(".")));
        System.out.println(s);
        System.out.println(s.toString().toUpperCase());
		/********* End *********/
	}
}

第4关:Random类


//密码的自动生成器:密码由大写字母/小写字母/数字组成,生成六位随机密码
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 < pardStore.length; i++) 
		{
			if(i < 26)
				pardStore[i] = (char)('A' + i);
			else if(i < 52)
				pardStore[i] = (char)('a' + (i-26));
			else
				pardStore[i] = (char)('0' + (i - 52));
			//System.out.print(pardStore[i]);
		}
		
		/********* End *********/
		// 分别以1、2、3作为种子数 生成6位随机密码
		Scanner sc = new Scanner(System.in);
		int seed = sc.nextInt();
		/********* Begin *********/
		Random r = new Random(seed);
		for(int j = 0; j < 6; j++)
		{
			int password = r.nextInt(62);
			System.out.print(pardStore[password]);
		}
		/********* End *********/
	}
}

在这里插入图片描述
这一关的时间戳给看呆了,各种格式
在这里插入图片描述

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

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 sdf1 = new SimpleDateFormat("yyyy-MM-dd");
        Date date1 = sdf1.parse(line);
        long ago = date1.getTime();
        //System.out.println(ago);
        String res1 = String.valueOf(ago);
        //System.out.print(res);
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日");
        Date date2 = sdf2.parse("2020年10月1日");
        long now = date2.getTime();
        String res2 = String.valueOf(now);
        //System.out.println(now);
		try {
			long diff = now - ago;
			//System.out.println(diff);
			//根据时间戳计算时间
			int days = (int) (diff / (1000 * 60 * 60 * 24));
			//System.out.println(days);
			System.out.println("你的出生日期距离2020年10月1日:" + days + "天");
        } catch (Exception e) {
            System.out.println("Got an exception!");
        }
		/********* End *********/
	}
}

第6关:Math类

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((int)(Math.round(a11)));
		/********* End *********/
	}
}

仅供参考!且学且珍惜!
在这里插入图片描述

  • 23
    点赞
  • 97
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值