Java 入門

by SpongyCat

Java是什麼? 可以吃嗎?

Java原先是設計用於家用電器控制的程式語言,後經過演變被廣泛用於伺服器後端以及Android應用程式開發。

Java 特點:語法類似C++,核心是物件導向,並捨去了C++複雜的指標系統。可以在多種裝置上運行。

-> Java被描述成一個很方便,只要寫一次程式就可以移植到其他裝置的程式語言

但其實是write once, debug everywhere :)

James Gosling - Java創始人之一

設置環境

1. 下載IntelliJ Idea (點擊Download)

2. 下載完後執行安裝檔

設置環境

2. 按New Project

1. 第一次打開IntelliJ Idea時,按允許存取 

設置環境

3 .Build System選擇自己想要的(我比較偏好Gradle) JDK就選擇Download Oracle OpenJDK 

4. 打開後等他跑完就可以看到Main.java

這個就是我們寫Java的地方

基礎語法

Hello, World!

public class Main {
	static void main(String[] args) {
    	System.out.println("Hello, World!");
    }
}

- 輸出

- 定義main函數

- 定義主程式的class

變數

在Java中,資料類型有分成預設的 (int, float, boolean...) 以及非預設的 (String, Arrays, Classes...) 以下是8個預設的資料類型:

預設的資料類型使用byte的數量區間
byte1-128 ~ 127
boolean1true / false
short2-32,768~32,767
char20 ~ 65535 (字元)
int4-2³¹ ~ 2³¹-1
long8-2⁶³ ~ 2⁶³-1
float4
double8

變數定義

public class Main {
    static void main(String[] args) {
        int number = 2;
        String text = "infor_39th";
        String text2 = "hello";
        System.out.println(number);
        System.out.println(text);
        System.out.println(text2 + text);
    }
}

輸出:

2

infor_39th

helloinfor39th

其他的資料類型還有很多,像是float, boolean... 詳細可以看這裡:Java 資料類型

在Java中,資料類型有分成預設的 (int, float, boolean...) 以及非預設的 (String, Arrays, Classes...)

輸入

import java.util.*;

public class Main {
    static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int number = sc.nextInt();
        System.out.println("Your number is " + number);
    }
}

實作

題目:寫一段Java程式將使用者的輸入存成一個String, 並且在前面加入Hello 並印出來

提示:會用到Scanner 需要先import java.util.*;

獲取使用者輸入的文字的函數是.next();

實作

解答:

import java.util.*;
public Main {
	static void main(String[] args) {
    	Scanner sc = new Scanner(System.in);
        String string = sc.next();
        System.out.println("Hello, " + string);
    }
}

物件導向 (OOP)

作為Java的核心觀念,OOP - 物件導向程式設計 (Object Oriented Programming) 主要有三個核心想法:

OOP是什麼呢?

封裝(Encapsulation)

繼承(Inheritance)

多型(Polymorphism)

封裝 (Encapsulation)

可以想像每個class都是一個封閉的箱子,在箱子裡存有許多變數,但這些變數都是不公開的,只有在箱子內才能存取,如果在箱子外部的話需要透過箱子上安裝的通道 (function) 才能存取或修改。

繼承 (Inheritance)

可以想像成物件可以繼承其他物件的特性,比如老師和學生都屬於人的物件,因此在老師和學生的程式碼中可以繼承來自人的功能 (例如吃飯,喝水...)。

多型(Polymorphism)

一個母物件可以規定所有繼承的子物件要具有的功能,像定義一個"動物"物件,每個繼承自

"動物"的物件都要有"叫"的功能,那麼在每種不同的動物底下要自己定義每種動物怎麼叫,比如羊的叫聲是咩,牛的叫聲是牟~...

創建一個class

public class Human {
	private String name;
    private int age;
    public Human(String name, int age) {
    	this.name = name;
        this.age = age;
    }
    
    public String getName() {
    	return name;
    }
    
    public int getAge() {
    	return age;
    }
}

Java的規定: 如果class定義是public的話那麼class的名稱和檔案名稱要是一致的,因此這個程式碼要額外放在一個Human.java裡

陣列、清單

Java 入門

By Cat Spongy