0
0

More than 5 years have passed since last update.

プログラミングド素人のデザイナーがJava入門してみた_その3

Last updated at Posted at 2016-07-29

前回までのあらすじ

プログラミングド素人のデザイナーがJava入門してみた_その2

  • if文やfor文、配列などがJavaScriptと同様に書けることがわかった

教科書

ドットインストールさまさま

データ型とメモリの関係

  • データ型には基本型(プリミティブ型)参照型がある
  • メモリとは番地のついた連続したデータを置く為の領域

基本型(プリミティブ型)

  • 基本型の変数には値そのものが格納される
  • byte
  • short
  • int
  • long
  • float
  • bouble
  • boolean
  • char

参照型

  • 参照型の変数にはメモリの番地が格納される
  • ↑以外
  • String
  • Array
  • Class

など

  • 参照型の変数には値そのものは格納されていないので、挙動に注意が必要
  • 値が格納されたメモリの番地のメモが格納されているイメージ?
public static void main (String[] args){
  int[] arr1 = {1,3,5}; //arr1はメモリに格納された{1,3,5}を参照
  int[] arr2 = arr1; //arr2はarr1が参照している{1,3,5}、つまり★同じもの★を参照
  arr2[1] = 10; //大元をいじっているので、arr1もarr2も影響を受ける

  System.out.println(arr1[1]);//10
  System.out.println(arr2[1]);//10
}

メソッド

メソッドの定義

public static [returnする値の型] [変数名]([引数の型] [変数名]){
  hogehoge;
}
  • 返す値(returnしない)がない場合は、void
public static void sayHi(){
  System.out.println("Hi!");
}
  • 文字列returnする場合はStringと明記
public static String sayHi(String name){
  return "Hi! " + name;
}

変数の有効範囲

  • メソッド内で定義した変数は、そのメソッド内でのみ有効
public class HelloWorld {
  public static void hoge(){
    int x = 1;
  }

  public static void main (String[] args){
    System.out.println(x); //xはhoge()内で定義されているので使えない
  }
}

メソッドをオーバーロードする

  • 引数の個数や値が異なれば、同じメソッド名でも別のものとして登録できる
public class HelloWorld {
  public static void hoge(){ //メソッド名hoge
    System.out.println("引数なし");
  }

  public static void hoge(String msg){ //こちらもメソッド名hoge
    System.out.println("引数は " + msg + " です");
  }

  public static void main (String[] args){
    hoge(); //引数なし
    hoge("こんにちは"); //引数は こんにちは です
  }
}

@iwashi0830はこう思った

  • 変数には常に値そのものが格納されていると思っていたので、参照型の話は新鮮だった
    • 結構複雑な話な気がするが、ドットインストールの説明がわかりやすかったので理解できた
  • メソッドを定義するとき、JavaScriptと比べていろいろと書かなければいけないことが多い
  • 常に型を明示していくのはけっこうめんどう
  • メソッドをオーバーロードするのってどんな場面で役立つのかわからん
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0