Javaベース構文の概要


1.
Javaでは、1つのプロジェクトで最初に実行される部分をMain関数またはMainメソッドと呼びます.
public class Main
{
	public static void main(String[] args)// 메인 함수
    {
    	System.out.println("Hello World!");
    }
}
printlnは、カッコ内の内容を出力し、スペースを改行する関数です.
2.
変数は、プログラムの実行中に格納された値がいつでも変更できるスペースです.
定数は、変更する必要のないデータです.
Tip.
Error occured during initialization if boot lauyer
このエラーはModule-Infoです.Javaによるエラー.
Module-Info.Don't createまたはcreateの後にJavaを直接削除すると、この問題を解決できます.
public calss Main
{
	public static void main(String[] args)
    {
    	int intType = 100;
        double doubleType = 150.5;
        String stringType = "honeyricecake";
	}
}
ここでint、double、Stringはデータ型です
隣のintType,doubleType,StringTypeは変数名を表す.
次にfinalキーワードを使用して定数を定義します.次のようにします.
public class Main
{
	final static double PI = 3.141592;
    
    public static void main(String[] args)
    {
    //생략
    }
}
上でfinalは、いったん発表されると変えられないことを意味します.
静的とは、1つのクラスで共有されるリソースです.
3.Java出力・資料型についてのヒント
(1) System.out.println("a + b = "+ (a + b));
このときa=1,b=2の場合、出力は以下のようになる.
a + b = 3
すなわち、javaで印刷に使用される+は、出力の前、出力の後を表す.
(2)整数変数に実数を加えると,整数部分のみが変数に格納される.
この方法により,実数値の四捨五入は変数に0.5を加えて整数型変換を行うことができる.
ex.
double x = 2.5;
int y = (int)(x + 0.5);

System.out.println(y);
出力値は3です.
4.Javaの資料型
String、Array、boolean、char、int、doubleなど.
その中でC言語との際立った違いはboolean型とString型である.
public calss Main
{
	public static void main(String[] args)
    {
    	int a = 100;
        
        System.out.println("10진수 : " + a);
        System.out.format("8진수 : %o\n", a);
        System.out.format("16진수 : %x\n", a);
    }
}
Javaは基本的に整数を出力するときに10進数で出力します.
したがって、整数を8進数または16進数に出力するにはformatを使用します.
din形式で受信および出力形式の場合、自動的に開行文字(改行)は入力されませんので、最後に直接入力する必要があります.
Stringは内部ではclassによって実現される.
Stringデータ型定義に関する関数はたくさんありますが、その中のsubstring関数を利用してStringデータ型定義の関数の使い方を理解してみましょう.
public calss Main
{
	public static void main(String[] args)
    {
    	String name = "Jane Doe";
        System.out.println(name);
        System.out.println(name.substring(0,1));
        System.out.println(name.substring(3,6));
    }
}
substringはString部分の文字列を取得する関数です.
このとき(3,6)などの括弧は3または6より小さいと考えられる.
つまり、Stringの3番目のセルから5番目のセルまでです.
したがって、上のmain関数は次の結果値を出力します.
Jane Doe
J
e D
データ型のサイズ
int-4バイト
長さ-8バイト
float-4バイト
ダブル8バイト
boolean - X
char-2バイト(C言語は1バイトでUnicodeを使用しているためハングルも使用可能)
5.演算子
  • :プラス
  • :マイナス
  • :乗算
    /:除算(シェアのみ)
    %:残り
  • x++:1の演算子.次の行から、xは元の値に1を追加します.
    ++X:1の演算子で、その行からxに1を加えます.
    public class Main
    {
    	public static void main(String[] args)
        {
        	int a = 40;
            System.out.println("a는" + a + "입니다.");
            System.out.println("a는" + a++ + "입니다.");
            System.out.println("a는" + a + "입니다.");
            System.out.println("a는" + ++a + "입니다.");
            a++;
            System.out.println("a는" + a + "입니다.");
        }
    }
    これにより、4040414243が順次出力される.
    ? : さんこうえんざんし
    ~ ? a:bは~本物ならa、偽物ならb.
    条件文
    public class Main
    {
    	public static void main(String[] args)
        {
        	String a = "I Love You";
            if(a.contains("Love")
            {
            	System.out.println("Me too.");
            }
            else
            {
            	System.out.println("I hate you");
            }
        }
    }
    String内部に含まれる関数で、どの文字列が含まれているかをチェックします.
    public class Main
    {
    	public static void main(String[] args)
        {
        	string a = "Man";
            
            if(a.equals("Man"))
            {
            	System.out.println("남자입니다.");
            }
            else
            {
            	System.out.println("남자가 아닙니다.");
            }
        }
    }
    JavaはStringの比較にequals()を使用します.//すなわち、==は使用できません.
    Strignは他の資料型とは異なる非原始資料型の文字列資料型であるためである.
    equalsIgnoreCaseを使用して、大文字と小文字を無視して同じかどうかを判断することもできます.
    比較演算子はboolean型演算子trueまたはfalseを返します.
    for(;;;) while(true)は無限に繰り返される
    しかし、breakドアから逃げることができます.
    7.デフォルトI/O
    import java.util.Scanner;//스캐너라는 걸 import해야만 scanner를 이용가능, 마치 C언어의 헤더파일과 같은 역할
    
    public class Main
    {
    	public static void main(String[] args)
        {
        	Scanner sc = new Scanner (System.in);
            int i = sc.nextInt();
            System.out.println(i);
    		sc.close;     
        }
    }
    scは関数ではなくインスタンスです.
    スキャナクラスのインスタンスscを作成し、新しいスキャナプログラムを使用して初期化します.
    System.inはコンソールウィンドウを表します.
    コンソールウィンドウの次の整数をsc.nextIntで入力し、iに挿入します.
    文字列I/Oメソッド:
    1.next():String型の文字列を入力します.空白文字も入力します.
    2.nextline():文字列を受け入れ、他のnext~()メソッドと異なる点は、動作単位で入力される点です.
    8.ファイルI/O
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.util.Scanner;
    
    public class Main
    {
    	public static void main(String[] args)
        {
        	File file = new FIle("input.txt");
            
            try//아래의 문을 실행한다는 의미
            {
            	Scanner sc = new Scanner(file);//scanner 대신 file
                while(sc.hasNextInt())
                {
                	System.out.println(sc.nextInt() * 100);
                }
                sc.close;
            }
            catch (FileNotFoundException e)//FileNotFoundException 이라는 오류가 발생하면 중괄호로 들어간다.
        	{
        		System.out.println("파일 못 찾음");
        	}
        }   
    }
    デフォルトI/Oプロンプト

  • JavaではScannerクラスを利用すれば,様々なI/O形式を自由に利用できる.

  • できるだけ多くの注釈を書く習慣を身につける.
  • 8.カスタム関数
    ->問題をより小さく(より効率的に)分解できます.
    関数は各モジュールとして簡単に修正され、完備されています.
    (Javaでは関数とメソッドの意味が同じ)
    import java.util.Scanner;
    
    public class Main
    {
    	public static int fuction(int a, int vb, int c)
        {
        	int min;
            
            if(a > b)
            {
            	if(b > c) min = c;
                else min = b;
            }
            else
            {
            	if(a > c) min = c;
                else min = a;
            }
            
            for(int i = min; i > 0; i--)
            {
            	if((a % i == 0) && (b % i == 0) && (c % i == 0)) return i;
            }
            return 0;
        }
        
        public static void main(String[] args)
        {
        	//중략
        }
    }
    前述したように、カスタム関数を作成できます.
    △上の関数は、最大承諾数を求める関数です.
    その他の例
    import java.util.Scanner;
    
    public Class Main
    {
    	public static char fuction(String input)
        {
        	return input.charAt(input.length() - 1);
        }
    }
    
    //생략
    上のカスタム関数を使用して、文字列の最後の文字を出力できます.
    charAtはStringで定義された関数で、その位置の文字を返します.
    lengthもStringで定義された関数で、文字列の長さを返します.
    Tip.
    next->単語ごとに書き換え文字->scanfは無視されますが、書き換え文字をバッファに保持するのとは異なります
    nextline->単行文字、受信単行文字
    9.配列
    int[] array = new int[100];
    このときnewは、任意の変数(instance)を作成する際に使用される約束です.
    C言語とは異なり、次のように宣言できます.
    int x = 100;
    int[] array = new int[x];
    C言語では、次の変数を使用して配列を割り当てるには、mallocなどの動的な割り当てが必要です.
    10.等級
    階級-現実世界の特定のものを指すと思って、とても気持ちがいいです.
    ex.Nodeクラス:場所または場所、またはデータ構造内のバイナリツリーのサブツリーです.
    また、開発プロジェクトでは、処理するデータ単位を示すためにStudentクラスを使用することが多い.
    ex.
    carクラス-速度、色、名前など
    そうするとnewcar();新しい差分変数を作成できます.
    これをオブジェクト向けプログラミングと呼ぶ.
    public class Node
    {
    	private int x;
        private int y;//노드의 특성 x,y
        //private으로 만드는 이유 - 외부에서 한번에 접근할 수 없음->자바의 객체지향 프로그래밍은 보안을 굉장히 중요시한다.
        
        public int getX()
        {
        	return x;
        }
        
        public void setX()
        {
        	this.x = x;//변수명이 겹치므로 this를 이용해준다. this는 클래스의 특성 x를 의미
        }
        
        public int getY()
        {
        	return y;
        }
        
        public void setY(int y)
        {
        	this.y = y;
        }
        
        public Node(int x, int y)//생성자, 객체를 하나 만즐어줄 때 자동으로 초기화해주는 함수
        {
        	this.x = x;
            this.y = y;
        }//클래스와 동일한 이름을 가지고 있다는 것이 생성자의 특징이다.
        
        public Node getCenter(Node other)
        {
        	return new Node((this.x + other.getX()) / 2 , (this.y + other.getY) / 2);
        }
    }
    このようにして製作した後にMainの中で使うことができます