Progate(プロゲート)-「Java 学習コース Ⅲ」まとめ。

スポンサーリンク  

 

<知識メモ>

「class Main」・・・「Main」というクラスの処理ですよ。

「public static 〜」・・・メソッドという塊のこと。

(Mainというクラスの中に、いくつものメソッドが入っているというイメージ)

=====

1)上のメソッドで、下のメソッドを呼び出す

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

public static void hello() {
System.out.println(“Hello Java”);
}
}

 

<知識メモ>

printData(“Kate Jones”) ←データが入ってるやつ、引数。

public static void printData(String name) ←メソッドの先頭で書いてるやつ、仮引数。

=====

 

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

public static void printData() {
System.out.println(“私の名前はKate Jonesです”);
}
}

 

<知識メモ>

引数は、左から順番に「第1引数、第2引数・・・」と呼ぶ。

 

=====

1)まず、「System.out.println」に注目する。

2)「name」を使いたいんだな〜ってことが分かる。

3)printDataの第一引数がnameに該当することが分かる。

4)printDataの第一引数は、「Kate Jones」とか「John Christopher Smith」であることが分かる。

class Main {
public static void main(String[] args) {
printData(“Kate Jones”);
printData(“John Christopher Smith”);
}

public static void printData(String name) {

System.out.println(“私の名前は”+ name + “です”);
}
}

 

 

=====

1)まず、「System.out.println」に注目する。

2)「name」や「age」を使いたいんだな〜ってことが分かる。

3)つまり、printDataの第一引数と、第二引数を使いたいんだな〜ってことが分かる。

class Main {
public static void main(String[] args) {
// それぞれ年齢に関する引数を追加してください
printData(“Kate Jones”,27);
printData(“John Christopher Smith”,65);
}

public static void printData(String name,int age) {
System.out.println(“私の名前は” + name + “です”);

System.out.println(“年齢は”+ age +”歳です”);
}
}

 

=====

1)まず、「System.out.println」に注目する。

2)「name」や「age」を使うんだな〜ってことが分かる。

3)「name」や「age」は、printDataの第一引数、第二引数に該当するってことが分かる。

4)printDataを見てみると、「name, 27」とか、「John Christopher Smith, 65」ってのが書いてある。さて、nameは何だろう。

5)nameには、fullNameってのが代入されるらしい。

6)fullNameを見ると、fullNameは「firstName + ” ” + lastName」だぜってことが書いてある。

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

String name = fullName(“Kate”, “Jones”);

printData(name, 27);

printData(“John Christopher Smith”, 65);
}

public static void printData(String name, int age) {

System.out.println(“私の名前は” + name + “です”);

System.out.println(“年齢は” + age + “歳です”);
}

public static String fullName(String firstName, String lastName) {
return firstName + ” ” + lastName;
}
}

(出力結果)
私の名前はKate Jonesです
年齢は27歳です
私の名前はJohn Christopher Smithです
年齢は65歳です

 

=====

1)まず、「System.out.println」に注目する。

2)「name」や「age」を使うんだな〜ってことが分かる。

3)「name」や「age」は、printDataの第一引数、第二引数に該当するってことが分かる。

4)printDataを見てみると、「name, 27」とか、「John Christopher Smith, 65」ってのが書いてある。さて、nameは何だろう。

5)nameには、fullNameってのが代入されるらしい。

6)fullNameを見ると、fullNameは「firstName + ” ” + lastName」だぜってことが書いてある。

class Main {
public static void main(String[] args) {
// fullNameメソッドの結果を変数nameに代入してください
String name = fullName(“Kate”,”Jones”);

// printDataの引数を書き換えてください
printData(name, 27);

// こちらは書き換えないでください
printData(“John Christopher Smith”, 65);

}

public static void printData(String name, int age) {
System.out.println(“私の名前は” + name + “です”);
System.out.println(“年齢は” + age + “歳です”);
}

// fullNameメソッドを定義してください

public static String fullName(String firstName,String lastName){
return firstName + ” ” + lastName;
}
}

(出力結果)
私の名前はKate Jonesです
年齢は27歳です
私の名前はJohn Christopher Smithです
年齢は65歳です

 

=====

メソッドのオーバーロードを用いて、引数の数が異なるfullNameメソッドを定義してみましょう。

class Main {
public static void main(String[] args) {
printData(fullName(“Kate”, “Jones”), 27);printData(fullName(“John”,”Christopher”,”Smith”), 65);
}

public static void printData(String name, int age) {
System.out.println(“私の名前は” + name + “です”);
System.out.println(“年齢は” + age + “歳です”);
}

public static String fullName(String firstName, String lastName) {
return firstName + ” ” + lastName;
}

public static String fullName(String firstName,String middleName,String lastName){
return firstName + ” ” + middleName + ” ” + lastName;
}
}

(出力結果)
私の名前はKate Jonesです
年齢は27歳です
私の名前はJohn Christopher Smithです
年齢は65歳です

 

=====

printDataメソッドに、新たにheight(身長)とweight(体重)を渡すようになっています。この身長と体重を使ってBMIを求めるbmiメソッドを作りましょう。

class Main {
public static void main(String[] args) {
printData(fullName(“Kate”, “Jones”), 27, 1.6, 50.0);
printData(fullName(“John”, “Christopher”, “Smith”), 65, 1.75, 80.0);
}

public static void printData(String name, int age, double height, double weight) {
System.out.println(“私の名前は” + name + “です”);
System.out.println(“年齢は” + age + “歳です”);
System.out.println(“身長は” + height + “mです”);
System.out.println(“体重は” + weight + “kgです”);

double bmi = bmi(height,weight);

System.out.println(“BMIは” + bmi +”です”);

}

public static String fullName(String firstName, String lastName) {
return firstName + ” ” + lastName;
}

public static String fullName(String firstName, String middleName, String lastName) {
return firstName + ” ” + middleName + ” ” + lastName;
}

// bmiメソッドを定義してください
public static double bmi (double height,double weight){
return weight / height / height;
}
}

 

=====

1) isHealthyで「true」か「false」を返す

2)ちなみにbmiってのは、「weight / height / height」らしい

class Main {
public static void main(String[] args) {
printData(fullName(“Kate”, “Jones”), 27, 1.6, 50.0);
printData(fullName(“John”, “Christopher”, “Smith”), 65, 1.75, 80.0);
}

public static void printData(String name, int age, double height, double weight) {
System.out.println(“私の名前は” + name + “です”);
System.out.println(“年齢は” + age + “歳です”);
System.out.println(“身長は” + height + “mです”);
System.out.println(“体重は” + weight + “kgです”);
double bmi = bmi(height, weight);
System.out.println(“BMIは” + bmi + “です”);

// isHealthyメソッドの結果で条件分岐を行ってください
if (isHealthy(bmi)){
System.out.println(“健康です”);
}
else {
System.out.println(“健康ではありません”);
}
}

public static String fullName(String firstName, String lastName) {
return firstName + ” ” + lastName;
}

public static String fullName(String firstName, String middleName, String lastName) {
return firstName + ” ” + middleName + ” ” + lastName;
}

public static double bmi(double height, double weight) {
return weight / height / height;
}

// isHealthyメソッドを定義してください
public static boolean isHealthy(double bmi){
return bmi >= 18.5 && bmi < 25.0;
}
}

 

=====

・他のクラスのメソッドを呼び出す

Personクラスを作り、Mainクラスのmainメソッド以外をPersonクラスに移します。こうすることで、mainメソッド以外の「ロジック(論理)」部分をPersonクラスにまとめ、実行部分とロジック部分を切り分けることができます。このように分割することで、Mainクラスは実行用のクラス、Personクラスはロジックをまとめるクラスという役割分担が明確になります。

class Main {
public static void main(String[] args) {
Person.hello();
}
}

 

class Person {
public static void hello() {
// “Hello World”を、”Hello Java”に書き換えてください
System.out.println(“Hello Java”);
}
}

 

=====

・class名は、先頭大文字でね

・Mainクラスでは、処理を書く。

・Personクラスでは、定義を書く。

public class Main {
public static void main(String[] args) {
Person.printData(Person.fullName(“Kate”, “Jones”), 27, 1.6, 50.0);
Person.printData(Person.fullName(“John”, “Christopher”, “Smith”), 65, 1.75, 80.0);
}
}

class Person {
public static void printData(String name, int age, double height, double weight) {
System.out.println(“私の名前は” + name + “です”);
System.out.println(“年齢は” + age + “歳です”);
System.out.println(“身長は” + height + “mです”);
System.out.println(“体重は” + weight + “kgです”);

double bmi = bmi(height, weight);
System.out.println(“BMIは” + bmi + “です”);

if (isHealthy(bmi)) {
System.out.println(“健康です”);
} else {
System.out.println(“健康ではありません”);
}
}

public static String fullName(String firstName, String lastName) {
return firstName + ” ” + lastName;
}

public static String fullName(String firstName, String middleName, String lastName) {
return firstName + ” ” + middleName + ” ” + lastName;
}

public static double bmi(double height, double weight) {
return weight / height / height;
}

public static boolean isHealthy(double bmi) {
return bmi >= 18.5 && bmi < 25.0;
}
}

 

・外部ライブラリを取り込む(実は書かなくても大丈夫らしい)

import java.lang.Math;

 

// Mathクラスのroundメソッドを用いて、BMIを四捨五入して出力するようにしてください
System.out.println(“BMIは” + Math.round(bmi) + “です”);

 

=====

スキャナーを使う(コンソールに入力しちゃう)

※実行すると、文字や数字の入力を求められる

scanner.next()とすると、コンソールに入力された文字列を受け取ることができます。

import java.util.Scanner;

class Main {
public static void main (String[] args) {
Scanner scanner = new Scanner(System.in);

System.out.print(“名前: “);
String name = scanner.next();
System.out.println(“こんにちは” + name +”さん”);
}
}

 

=====

import java.util.Scanner;

class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);

System.out.print(“名前:”);
String firstName = scanner.next();

System.out.print(“名字:”);
String lastName = scanner.next();

System.out.print(“年齢:”);
int age = scanner.nextInt();

System.out.print(“身長(m):”);
double height = scanner.nextDouble();

System.out.print(“体重(kg):”);
double weight = scanner.nextDouble();

Person.printData(Person.fullName(firstName, lastName), age, height, weight);
}
}

 

=====

(道場での復習)

・スキャナー使用を宣言

・スキャナーを初期化

・next()はスペースで分割されたトークンを検索して、見つかった順にトークンを返すらしい。

import java.util.Scanner;

class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);

System.out.print(“名前:”);
String firstName = scanner.next();

System.out.println(“名前は”+ firstName +”です”);
}
}

 

=====

・スキャナー使用を宣言

・スキャナーを初期化

import java.util.Scanner;

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

Scanner scanner = new Scanner(System.in);

System.out.print(“名前:”);
String firstName = scanner.next();
System.out.print(“名字:”);
String lastName = scanner.next();

System.out.println(“名前は”+ firstName + ” ” + lastName +”です”);

}
}

 

=====

import java.util.Scanner;

class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);

System.out.print(“名前:”);
String firstName = scanner.next();
System.out.print(“名字:”);
String lastName = scanner.next();
String name = firstName + ” ” +lastName;

System.out.print(“年齢:”);
int age = scanner.nextInt();

System.out.println(“名前は”+ name +”です”);
System.out.println(“年齢は”+ age +”歳です”);

if(age >= 20) {
System.out.println(“成年者です”);
} else{
System.out.println(“未成年者です”);
}
}
}

 

=====

import java.util.Scanner;

class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);

System.out.print(“名前:”);
String firstName = scanner.next();
System.out.print(“名字:”);
String lastName = scanner.next();
System.out.print(“年齢:”);
int age = scanner.nextInt();
System.out.print(“身長(m):”);
double height = scanner.nextDouble();
System.out.print(“体重(kg):”);
double weight = scanner.nextDouble();

 

printData(firstName, lastName, age, height, weight);
}

 

public static void printData(String firstName, String lastName, int age, double height, double weight) {
System.out.println(“名前は” + fullName(firstName, lastName) + “です”);
System.out.println(“年齢は”+ age +”歳です”);

if(age >= 20) {
System.out.println(“成年者です”);
} else{
System.out.println(“未成年者です”);
}
System.out.println(“身長は” + height + “mです”);
System.out.println(“体重は” + weight + “kgです”);
}
public static String fullName(String firstName, String lastName) {
return firstName + ” ” + lastName;
}
}

 

=====

import java.util.Scanner;

class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print(“名前:”);
String firstName = scanner.next();
System.out.print(“名字:”);
String lastName = scanner.next();
System.out.print(“年齢:”);
int age = scanner.nextInt();
System.out.print(“身長(m):”);
double height = scanner.nextDouble();
System.out.print(“体重(kg):”);
double weight = scanner.nextDouble();
Person.printData(firstName, lastName, age, height, weight);
}
}

 

class Person {
public static void printData(String firstName, String lastName, int age, double height, double weight) {
System.out.println(“名前は” + fullName(firstName, lastName) + “です”);
System.out.println(“年齢は” + age + “歳です”);
if (age >= 20) {
System.out.println(“成年者です”);
} else {
System.out.println(“未成年者です”);
}
System.out.println(“身長は” + height + “mです”);
System.out.println(“体重は” + weight + “kgです”);

double bmi = bmi(height, weight);
System.out.println(“BMIは” + Math.round(bmi) + “です”);
}

public static String fullName(String firstName, String lastName) {
return firstName + ” ” + lastName;
}

public static double bmi(double height, double weight) {
return weight / height / height;
}
}

スポンサーリンク  

コメントを残す

メールアドレスが公開されることはありません。