Java原创问题创建4(Java入门篇:轻松理解Java)

这是Java原始问题创建3的续篇。

第14章(支持Java的标准类)

问题1: 请使用JavaAPI(Date类、Calendar类)来显示当前的年份、月份和日期。
(示例)显示示例:2020年2月15日

请创建一个名为sukki的包。(将以下所有的类放入该包中)
创建Hero类。请准备一个名为name(String类型)和一个名为hp(int类型)的字段。
创建Main类,并给Hero类的name和age字段赋值。(name为自己的名字,age为100)
调用Hero类的实例。
请将显示的“类型名@英数字”修改为自己的名字和100。

提示(重写toString方法)

问题3
请使用封装类
将字符串(变量:10)转换为数字并显示出来。
另外,请将数字(变量:20)转换为字符串并显示出来。

回答

//問題1
package date;

import java.util.Calendar;
import java.util.Date;

public class Main2 {
        public static void main(String[] args) {
                Date now = new Date();
                Calendar c = Calendar.getInstance();
                c.setTime(now);
                int y = c.get(Calendar.YEAR);
                int m = c.get(Calendar.MONTH)+1;
                int d = c.get(Calendar.DAY_OF_MONTH);

                System.out.println(y + "年" + m + "月" + d + "日");
        }
}



//実行結果
2021年4月22日

//問題2
package sukki;

public class Main {

        public static void main(String[] args) {
                // TODO 自動生成されたメソッド・スタブ
                Hero h = new Hero();

                h.name = "ミナト";
                h.hp = 100;
                System.out.println(h.toString());

        }
}



//実行結果
ミナト
100
package sukki;

public class Hero {
        String name;
        int hp;

        public String toString() {
                return this.name + this.hp;
        }
}
//問題3
package rapper;

public class Main {

         public static void main(String args[]) {

                // 文字列を数値に変換
                String s10 = "10";
                Integer num = Integer.parseInt(s10);
                System.out.println(num);

                // 数値を文字に変換
                int i=20;
                String str = String.valueOf(i); //valueOfメソッドはLongクラスのメソッドの1つです。valueOfメソッドを用いることで、long型の変数か値、もしくは、String型の変数か値からLongクラスを生成することのできるメソッドです。
                System.out.println(str);
            }
}



//実行結果
10
20

第15章(特例)

■问题1
声明一个名为s的String型变量,并将其赋值为null。
请显示s.length()的内容。

请使用try-catch语句来处理异常,因为出现了错误。
catch部分的内容:请显示堆栈跟踪。

问题2
请创建一个exception包(将以下所有的类都放在这里)。
创建Ex类,并添加一个loop方法(抛出声明[异常类:ArrayIndexOutOfBoundsException])。
loop方法的内容:
– 创建一个由3个元素[10,20,30]组成的数组
– 使用for循环调用4个元素
创建Main1类,并调用loop方法。
在catch中显示以下内容:“发生了异常,程序将提前结束”。

创建Person类,并添加set方法。
set方法内容:
– 带有参数(int型)
– 如果参数小于0,则抛出异常。(异常类:IllegalArgumentException)(消息:不是正数。)
创建Main3类,调用set方法。(参数:-2)
如果发生错误并显示消息,则说明正确。

回答

//問題1
package exception;

public class Main {

    public static void main(String[] args) {
        // TODO 自動生成されたメソッド・スタブ

        try {
            String s = null;
            System.out.println(s.length());

        }catch(NullPointerException e) {
            e.printStackTrace();
        }
    }
}




//実行結果
java.lang.NullPointerException
    at sa/exception.Main.main(Main.java:10)

//問題2
package exception;

public class Main1 {

    public static void main(String[] args) {
        try {
            Ex ex = new Ex();
            ex.loop();
        } catch (ArrayIndexOutOfBoundsException e) {
            System.out.println("例外発生しました途中で終了します");
        }
    }
}



//実行結果
10
20
30
例外発生しました途中で終了します

package exception;

public class Ex {

    public void loop() throws ArrayIndexOutOfBoundsException{
        //ArrayIndexOutOfBoundsException・・不正なインデックスを使って配列がアクセスされたことを示すためにスローされま

    //ほんとはここでエラーが起きてるかthrowsをつけることで、エラー出た場合はよろしく
        int[] num = {10,20,30};
        for(int i=0; i<4; i++) {
            System.out.println(num[i]);
        }
    }
}

//問題3
package exception;

public class Main3 {

        public static void main(String[] args) {
                Person p = new Person();
                p.set(-2);
        }
}



//実行結果
Exception in thread "main" java.lang.IllegalArgumentException: 正の数ではありません
    at sa/exception.Person.set(Person.java:7)
    at sa/exception.Main3.main(Main3.java:7)

package exception;

public final class Person {

    public void set(int age) {
        if (age < 0) {
            throw new IllegalArgumentException("正の数ではありません。");
        }
    }
}

Java原创问题创建1(Java入门篇:易懂的Java)

Java原始问题创建2(Java入门篇:容易理解的Java)

Java原始问题创建3(Java入门篇:轻松理解Java)

结束了。

辛苦了。

bannerAds