ProgateでJavaを学ぶ【コース3は主にメソッド】

ProgateでJavaを学ぶコース3

Progate javaコース3

この記事はProgateのJavaコース3で学んだことをまとめています。

Progateとはプログラミングの学習サービスです。コース1、コース2の内容は下記にまとめています。

Progateは有料なので自分で学びたいという方はこちらの本がおすすめです↓

スッキリわかるJava入門 第2版 (スッキリシリーズ)
中山 清喬 国本 大悟
インプレス
売り上げランキング: 994

とはいえProgateは980円で学べますからProgate利用したほうが安上がりになる可能性はあります。

それでは、学んだことをまとめていきます。

メソッド

メソッドはコードをひとまとめにしていろんなとこで使えるようにしたものです。といってもアクセス権などがあとから関連してくるのでどこでも使えるというわけではありません。

メソッドを定義するときの書き方は 「 public static void メソッド名(){;} 」
メソッドを呼び出すときの書き方は 「 メソッド名(); 」

のように書きますが、定義の部分はアクセス修飾子があるので、いつも同じかきかたなのかというとそれは違います。
それとメソッド定義はmainメソッドの外で行うようにします。mainのメソッドの中でメソッド定義するとエラーになります。

class Main {
  public static void main(String[] args) {
    printData();
  }
  public static void printData(){
    System.out.println("私の名前はKate Jonesです");
  }
  
}

引数ありのメソッド

引数ありのメソッドは メソッドに引数をもたせてそれを使うことができます。Javaのメソッドの特徴は引数にも型指定を行うことです。引数とはなにかというと自分で設定できるパラメーターという考え方でよいかと思います。

書き方は 「 public static void printData(データ型 引数名){} 」
のように書きます

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 + "です");
  }
}

複数の引数をもったメソッド

複数の引数をもったメソッドを定義する場合は 引数をカンマ区切りで記述します。Javaの場合は引数にデータ型を宣言しないといけないのでデータ型の宣言も行います

「 public static void printData(Stirng name, int age){;} 」のような書き方になります

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 + "歳です");
  }
}

戻り値ありのメソッド

戻り値とはなにかというとメソッドの処理結果をうけとることを戻り値をうけとるといいます。戻り値をうけとるメソッドを定義するには、戻り値の型を指定することと、return文を使うことが重要になってくるかと思います。

具体的な書き方は 「 public static 戻り値の型 メソッド名(){;} 」のように書きます。

戻り値なしのメソッドは void がついていましたが 戻り値ありのメソッドの場合はvoidがなくなっている点もポイントです。はじめはわかりにくいかもしれませんが慣れてくるかと思います。

class Main {
  public static void main(String[] args) {
    // fullNameメソッドの結果を変数nameに代入してください
    String name = fullName("Kate", "Jones");
    System.out.println(name);//Kate Jones
  
  }
  public static String fullName(String firstName, String lastName){
    return firstName + " " + lastName;
  }
}

メソッドオーバーロード

メソッドオーバーロードは引数の違いとかで同じ名前のメソッドを記述できる機能ですが、あとからでてくるオーバーライドと混同してしまうのでここでは省略します。

メソッドの戻り値を真偽値でうけとる

メソッド戻り値を条件分岐の条件式に使うことができます。 この場合戻り値の型にboolean型を使用します

たとえばコードに意味はありませんが下記はメソッドの戻り値を条件式に使った例です。

class Main {
  public static void main(String[] args) {
    if(isGender("男性")){
      System.out.println("男性です");
    }else{
      System.out.println("男性ではありません");
    }
  }
  
  public static boolean isGender(String gender){
    if(gender == "男性"){
      return true;
    }else{
      return false;
    }
  }
}


ここからはクラスになるので長くなります

クラス

ここからは少し難しくなるうえながくなります。

クラス定義は 「 class Person{} 」のようにクラス名は大文字にします。

たとえば↓は別ファイルにPersonクラスを定義します。(Person.java)

//Person.java
class Person{
public static void hello(){
System.out.println("hello");
}
}

Main.javaでメソッドを呼び出します。(Main.java)

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

Main.javaでPerson.hello()のような呼び方ができるのはstaticキーワードがついているからです。といっても最初のうちは理解にくるしむと思いますが、これは慣れの問題かと思います。staticがついているメソッドはクラスメソッドとか静的メソッドとか呼んだりします。

組込オブジェクト(ライブラリ)

ライブラリとはあらかじめ定義されているクラスのことでこれらのメソッドを使うことでいろいろな処理ができます。たとえばMathクラスのround()メソッドは小数を四捨五入することができます。 Math.round(1.4);

この他にもたくさんのライブラリがありますがここでは省略します。

import文

組込オブジェクトは特になにも宣言しなくても使えるのですが、なかにはimport文を書いてライブラリを読みこまないと使えないものもあります。import文はjavaファイルの先頭で書くようにします。

import java.util.Scanner;

class Main {
  public static void main (String[] args) {
   Scanner scanner = new Scanner(System.in);
   String name = scanner.next();//ユーザーからの文字入力をうけとるメソッド
   int age = scanner.nextInt();//数値の入力を受け取る
      double weight = scanner.nextDouble();//小数の入力を受け取る
  }
}

Progate Javaコース3まとめ

Javaコース3では主にメソッドを学びました。結構量があったのでこの変でまとめておきたいと思います

  • 引数なしのメソッド → public static void メソッド名(){}
  • 引数ありのメソッド → public static void メソッド名(型 引数名)
  • 戻り値ありのメソッド → public static 戻り値の型 メソッド名(型 引数名){return;}

ようするにJavaのメソッドは戻り値の型と引数の型を指定しなければならいないということですね。public や static についてはこの記事では触れないでおこうと思います。

クラスについてもまだコース3の段階ではオブジェクト指向はでてきていないので、触れないでおこうと思います。

次の記事はProgateでJavaを学ぶ【コース4はオブジェクト指向】 | 初心者のプログラミング