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,传入输入值num1, d1调用toString方法并打印输出该值

        // 创建Demo类对象d2,同样传入输入值num1,打印判断d1和d2是否相等(实际是比较地址)

        /********* Begin *********/

        Demo d1=new Demo(num1);

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

        Demo d2=new Demo(num1);

        System.out.println(d1.equals(d2));

        /********* End *********/

        // 创建Person类对象p,传入输入值num2,打印判断d1和p是否相等(实际是比较地址)

        /********* Begin *********/

        Person p=new Person(num2);

        System.out.println(d1.equals(p));

        /********* 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基础类型包装类-练习

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=str11;

        String str2=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 *********/

        int start=str.indexOf(".");

        int end=str.indexOf(".",start+1);

        String str1=str.substring(start+1,end);

        System.out.println(str1);

        System.out.println(str1.toUpperCase());

 

        /********* End *********/

    }

}

第4关: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[i+26]=(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 random=new Random(seed);

        String str="";

        int []arr=random.ints(6,0,62).toArray();

        for(int i=0;i<6;i++){

            str+=pardStore[arr[i]];

        }

        System.out.println(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 mxy=new SimpleDateFormat("yyyy-MM-dd");

        Date date1=mxy.parse(line);

        Date date2=mxy.parse("2020-10-1");

        long number1=date1.getTime();

        long number2=date2.getTime();

        long number=number2-number1;

        number=number/86400000;

        System.out.println("你的出生日期距离2020年10月1日:"+number+"天");

               

 

 

        /********* 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 *********/

    }

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值