从今天开始涉足Java领域

学习Java并总结所需内容。

Eclipse捷径键

■ 补全(Ctrl + Space)
(字母框内输入)System.out.println();
(字母框内输入)System.out.println();
(主方法)public static void main(String[] args) {}

声明局部变量(Ctrl + 2 → L)
new ArrayList(); → ArrayList arrayList = new ArrayList();

■ 其他快捷键
代码格式化(Ctrl + Shift + F)
注释(Ctrl + /)
快速修复(Ctrl + 1)
向下或向上移动一行,复制一行(Alt + ↓↑,Ctrl + Alt + ↓↑)
删除一行(Ctrl + D)
提取方法(Alt + Shift + M)
打开调用层级(Ctrl + Alt + H)
打开声明(Ctrl + 点击)
打开类型(Ctrl + Shift + T)

编写程序

我为自己读了《轻松学习Java入门》一书做的总结。
https://sukkiri.jp/books/sukkiri_java3

▼类块 + 主块

public class Main {
    public static void main(String[] args) {

    }
}

在主要的区块中所写的内容。

System.out.println("こんにちは");こんにちはと表示させる
System.out.println("二重引用符(¥"");「二重引用符(")」と表示させる

int age;//変数宣言(ageという箱を用意)
age = 20;//変数age 代入 20
int age = 20;//変数 ageを20で初期化
age = 32;//変数ageに再代入
final double Pi = 3.14;//定数として円周率を宣言

//:データ型(整数)
byte glasses = 2;//所持するメガネの数
short age = 20;//年齢
int salary = 180000;//給与金額
long worldPeople = 6900000000L;//世界の人口
//データ型(少数)
float weight = 56;//体重
double pi = 3.14;//円周率
//データ型(真偽値)
boolean isError = true;//trueかfalse
//データ型(文字、文字列)
char initial = F;//イニシャル1文字
String name = Haru;//名前

int m = Math.max(,);//数字を比較して大きい方を代入
int n = Interger.parseInt();文字列を数字に変換
int r = new java.util.Random().nextInt();//乱数を発生(最大①まで)
String s = new java.util.Scanner(System.in).nextLine();キーボードから文字入力
int i = new java.util.Scanner(System.in).nextInt();キーボードから整数入力

岔路

//if
if (tenki == true) {
    System.out.println("晴れです");
}else {
    System.out.println("雨です");
}

//switch
int lucky = new java.util.Random().nextInt(3)+1;
System.out.println(lucky);
switch (lucky) {
case 1:
    System.out.println("大吉です");
    break;
case 2:
    System.out.println("吉です");
    break;
case 3:
    System.out.println("凶です");
}

//繰り返し処理の中断 break文
//今回だけ中断して次の周へ continue文

//論理演算子 &&(かつ)、||(または)

重复

for (int i = 0; i < 10; i++) {
  ブロック  
}

while (i < 100) {
  ブロック
}

do {
    if (i % 3 == 0) {
        System.out.println(i);
    }
    i++;
} while (i < 100);

排列

int[] score;//int型の要素を代入できる配列変数scoreを用意
score = new int[5];int型の要素を5つ作成してscoreに代入

score.length//配列の要素数の取得

int[] scores1 = new int[] {1,2,3};//省略法1
int[] scores2 = {1,2,3};//省略法2

for (要素の型 変数名:配列変数名){//拡張for文
}

//例
int[] moneyList = {1,2,3};
for(int i=0; i < moneyList.length; i++) {
    System.out.println(moneyList[i]);
}
for(int m : moneyList) {
    System.out.println(m);
}

方法

//メソッドの定義
public static 戻り値の型 メソッド名(引数リスト) {
    メソッドが呼び出されたときに実行される具体的な処理
}

public static void hello() {//helloメソッド、voidは戻り値がなしのときに使用
    System.out.println("こんにちは");
}
hello();//helloメソッドを呼び出す

//例
public static void main(String[] args) {
    introduceOneself();
}
public static void introduceOneself() {
    String name = "はる";
    int age = 6;
    double height = 110.5;
    char zodiac = '午';
    System.out.println(name);
    System.out.println(age);
    System.out.println(height);
    System.out.println(zodiac);
}

//例(オーバーロード)
public static void main(String[] args) {
    String address = "hoge@hogehoho.hoge";
    String text = "メールの本文";
    email(address,text);
}
public static void email(String address, String text) {
    System.out.println(address + "に、以下のメールを送りました");
    System.out.println("件名:無題");
    System.out.println("本文:" + text);
}
public static void email(String title, String address, String text) {
    System.out.println(address + "に、以下のメールを送りました");
    System.out.println("件名:" + title);
    System.out.println("本文:" + text);
}

//例(三角形の面積)
public static void main(String[] args) {
    double triangleArea = calcTriangleArea(10.0,5.0);
    System.out.println(triangleArea);
}
public static double calcTriangleArea(double bottom, double height) {
    double area = bottom * height / 2;
    return area;
}

以下是参考:Java方法的使用方式
https://www.javadrive.jp/start/method/index1.html

采用多个班级进行开发

public class Calc {
    public static void main(String[] args) {
        int a = 10; int b = 2;
        int total = CalcLogic.tasu(a, b);
        int delta = CalcLogic.hiku(a, b);
        System.out.println("足すと" + total + "、引くと" + delta);
    }
}
public class CalcLogic {
    public static void main(String[] args) {
        public static int tasu(int a, int b) {
            return (a + b);
        }
        public static int hiku(int a, int b) {
            return (a - b);
        }
    }
}

实例与类

面向对象编程

public class Main {
    public static void main(String[] args) {
        Cleric c = new Cleric();
        c.name = "聖職者";
        c.SelfAid();
        c.pray(3);
    }
}
import java.util.Random;

public class Cleric {
    String name;
    int hp = 50;
    final int MAX_HP = 50;
    int mp = 10;
    final int MAX_MP = 10;

    public void SelfAid() {
        System.out.println(this.name + "は、セルフエイドを唱えた");
        this.hp = this.MAX_HP;
        this.mp -= 5;
        System.out.println("HPが最大まで回復した");
    }

    public int pray(int sec) {
        System.out.println(this.name + "は" + sec + "秒間天に祈った!");

        int recover = new Random().nextInt(3) + sec;

        int recoverActual = Math.min(this.MAX_MP - this.mp, recover);

        this.mp += recoverActual;
        System.out.println("MPが回復した" + recoverActual);
        return recoverActual;
    }
}

各种类的机制

构造函数的条件
– 方法名与类名完全相同
– 方法声明中没有写明返回值(void也不可以)

public class クラス名 {
    クラス名() {
        自動的に実行する処理
    }
}

只有当类中没有定义任何构造函数时,才会在编译时自动添加一个“无参数、无处理内容”的构造函数。

public class Thief {
    String name;
    int hp;
    int mp;

    //new Thief("ハルタ", 40, 5)でインスタンス化する場合の記述
    public Thief(String name, int hp, int mp) {
        this.name = name;
        this.hp = hp;
        this.mp = mp;
    }
    //new Thief("ハルタ", 40)でインスタンス化する場合の記述(MPは5で初期化)
    public Thief(String name, int hp) {
        this(name, hp, 5);
    }
    //new Thief("ハルタ")でインスタンス化する場合の記述(HPは40,MPは5で初期化)
    public Thief(String name) {
        this(name, 40);
    }

    //new Thief()ではインスタンス化できないようにする(名前の無いThiefは存在させない)
}

使用上述的Thief类来编写程序。

public class Main {
    public static void heal(int hp) {
        hp += 10;
    }
    public static void heal(Thief thief) {
        thief.hp += 10;
    }
    public static void main(String[] args) {
        int baseHp  = 25;
        Thief t = new Thief("ハルタ", baseHp);
        System.out.println(baseHp + ":" + t.hp);
        heal(baseHp);
        heal(t);
        System.out.println(baseHp + ":" + t.hp);
    }

    //実行結果
//  25:25(引数がint型の場合、変数baseHpの値が引数hpにコピーされる値渡しのため)
//  25:35(引数がクラス型の場合、変数tが示すアドレスが引数thiefにコピーされる参照渡しにより、t.hpとthief.hpはメモリの同じ場所を指すことになるため)
}

继承

//キノコモンスターのクラスを作成
public class Matango {
    int hp = 50;
    char suffix;
    public Matango(char suffix) {
        this.suffix = suffix;
    }
    public void attack(Hero h) {
        System.out.println("キノコの攻撃 " + this.suffix);
        System.out.println("10のダメージ");
        h.hp -= 10;
    }
}
public class PoisonMatango extends Matango {
    int poisonCount = 5;
    public PoisonMatango(char suffix) {
        super(suffix);
    }
    public void attack(Hero h) {
        super.attack(h);
        if (this.poisonCount > 0) {
            System.out.println("さらに胞子をばらまいた");
            int dmg = h.hp / 5;
            h.hp -= dmg;
            System.out.println(dmg + "ポイントのダメージ");
            this.poisonCount--;
        }
    }
}
public class Hero {
    String name;
    int hp = 150;
    public Hero(String name) {
        this.name = name;
        System.out.println("名前は" + this.name + "、体力は " + this.hp);
    }
}
public class Main {
    public static void main(String[] args) {
        Hero h = new Hero("ヒロタ");
        Hero h2 = new Hero("ヒロタ2");

        Matango m1 = new Matango('A');
        m1.appear();
        m1.attack(h);

        PoisonMatango pm1 = new PoisonMatango('A');
        pm1.appear();
        pm1.attack(h2);
    }
}
广告
将在 10 秒后关闭
bannerAds