【Java】基本语法训练题

Q1:equals的使用

编写一个商品类,包含品名和价格。
创建商品对象,判断两个同名商品对象是否相同;判断两个同名同价格商品对象是否相同。

/**
 * 编写一个商品类,包含品名和价格
 * 创建商品对象,判断两个同名商品对象是否相同;判断两个同名同价格商品对象是否相同
 */
public class Goods {
    private String name;
    private double price;
    
    public Goods(String name, double price) {
        this.name = name;
        this.price = price;
    }
    
    public String getName() {
        return this.name;
    }
    
    public double getPrice() {
        return this.price;
    }
    
    @Override
    public boolean equals(Object obj) {
        if (obj != null && obj instanceof Goods) {
            if (((Goods)obj).getName().equals(this.name)) {
                return true;
            }
        }
        return false;
    }

}

public class equalsTest1 {
    public static void main(String[] args) {
        Goods g1 = new Goods("卫龙", 0.50);
        Goods g2 = new Goods("冰露", 1.00);
        Goods g3 = new Goods("农夫山泉", 2.00);
        Goods g4 = new Goods("卫龙", 1.00);
        
        //都不相同
        System.out.println("g1和g3是否一样?" + g1.equals(g3));
        //价格不同、名称相同
        System.out.println("g1和g4是否一样?" + g1.equals(g4));
        //名称不同、价格相同
        System.out.println("g2和g4是否一样?" + g2.equals(g4));
        //自反性
        System.out.println("g1和g1是否一样?" + g1.equals(g1));
        //对称性
        System.out.println("g3和g1是否一样?" + g3.equals(g1));
    }
}

Q2:利用Calendar类获取一些时间数据

import java.util.Calendar;

/**
 * 利用Calendar类获取一些时间数据
 */
public class CalendarTest2 {
    public static void main(String[] args) {
        Calendar cal = Calendar.getInstance();
        System.out.println(cal);
        System.out.println(cal.get(Calendar.YEAR) + "年" + (cal.get(Calendar.MONTH)+1) + "月"
                + cal.get(Calendar.DAY_OF_MONTH) + "日" + cal.get(Calendar.WEEK_OF_YEAR) + "周");
    }
}

Q3:时区转换

巴黎时间比北京时间晚7个小时,纽约时间比北京时间晚12个小时 ,试编写一程序,根据输入的北京时间输出相应的巴黎和纽约时间。

import java.util.Calendar;
import java.util.Scanner;
import java.text.SimpleDateFormat;

/**
 * 巴黎时间比北京时间晚7个小时,纽约时间比北京时间晚12个小时 ,试编写一程序,根据输入的北京时间输出相应的巴黎和纽约时间
 */
public class CalendarTest1 {
    public static void main(String[] args) throws Exception {
        Scanner scan = new Scanner(System.in);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Calendar calendar = Calendar.getInstance();
        System.out.print("请输入所需转化的北京时间...\n年>");
        var string1 = scan.next();
        System.out.print("月>");
        var string2 = scan.next();
        System.out.print("日>");
        var string3 = scan.next();
        System.out.print("时>");
        var string4 = scan.next();
        System.out.print("分>");
        var string5 = scan.next();
        System.out.print("秒>");
        var string6 = scan.next();
        try {
            var year = Integer.parseInt(string1);
            var month = Integer.parseInt(string2);
            var day = Integer.parseInt(string3);
            var hourOfDay = Integer.parseInt(string4);
            var minute = Integer.parseInt(string5);
            var second = Integer.parseInt(string6);
            calendar.setTime(sdf.parse(year + "-" + month + "-" + day + " " + hourOfDay + ":"  + minute + ":" + second));
            calendar.add(Calendar.HOUR_OF_DAY, -7);
            System.out.println("巴黎时间是:" + sdf.format(calendar.getTime()));
            calendar.add(Calendar.HOUR_OF_DAY, -5);
            System.out.println("纽约时间是:" + sdf.format(calendar.getTime()));
        } catch (NumberFormatException e) {
            System.out.println("输入的不是数值!\n" + e);
        }
        scan.close();
    }

}

当时还不怎么会玩time包,做的很是拙劣,见谅。

Q4:获取1-50的随机整数

import java.util.Random;

/**
 * 获取1-50的随机整数
 */
public class RandomTest {
    public static void main(String[] args) {
        for (int i = 0; i < 7; i++) {
            //下面等价
            System.out.println((int)Math.floor(Math.random() * 50) + 1);
            System.out.println((int)Math.ceil(Math.random() * 50));
            System.out.println(new Random().nextInt(50) + 1);
        }
    }

}

Q5:获取百度和本机的Address

import java.net.InetAddress;
import java.net.UnknownHostException;

public class TestInetAddress {

	public static void main(String[] args) {
		
		try {
			InetAddress inetAddress = InetAddress.getByName("www.baidu.com");
			
			System.out.println(inetAddress.getHostAddress());
			System.out.println(inetAddress.getHostName());
			
			InetAddress localAddress = InetAddress.getLocalHost();
			
			System.out.println(localAddress.getHostAddress());
			System.out.println(localAddress.getHostName());
		} catch (UnknownHostException e) {
			e.printStackTrace();
		}

	}

}
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 博客之星2020 设计师:CY__ 返回首页
实付 39.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值