Java/Java 개념 정리

print

jamk-diary 2026. 6. 11. 19:51

 

public class MainClass {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

 

자바 프로그램의 가장 기본적인 구조이다

새로운 클래스를 생성할 때  public static void main(String[] args) 체크 박스 선택하면 자동으로 선택이 된다 

 

public class MainClass 

 

자바에서 반드시 코든 코드는 어떤 클래스의 내부 {  여기 }} 안에만 적어야 한다

클래스 밖에는 코드를 단독으로 적을 수 없다

MainClass 는 클래스의 이름이다 

Java에서는 클래스 이름과 소스 파일의 이름이 반드시 일치해야 된다.

클래스는 어떤 제품을 만들기 위한 설계도로, 물건을 수납 상자라고 생각하면 된다. 

클래스 안에는 목적을 위한 코드들을 따로 짜서 설계하면 깔끔해진다 

package print; // 폴더 이름 : 프린트 / 프린트 관련 클래스들만 모을 거야!

public class MainClass { //설계도 : 프린트를 하기 위한 기능을 만들어 두는 설계도 (공장)

	public static void main(String[] args) { // 프린트를 하기 위해 실행을 담당하는 파트 (공장 안에서 바뀌 만드는 라인)
		System.out.print("Hello Java"); // 어떤 프린트를 하라고 명령한다 (고무로 타이어를 생산하고 휠을 제작해서 합치는 실제 기능을 하는 작업들을 수행한다)
	}
    
    //에러에러!
    //->파트 안에서 명령을 내려야 하는데 파트를 벗어났다! 
    //파트 안에서만 프린트를 명령할 수 있다 
	System.out.print("Hello Java"); 
}

//에러에러!
//명령어는 아무곳에서나 실행 될 수 없다 설계도(공장) 이 있어야 그 안에 파트가 생기고 
//그 파트 안에서 실행을 할 수가 있다 
System.out.print("Hello Java");

 

프로젝트 -> 자동차를 만드는 프로젝트 공장 

패키지 -> 자동차라고 부르기 위해 반드시 있어야 하는 건물  ex 1층은 바퀴 , 2층은 의자, 3층은 엔진, 4층은 차체,  5층은 유리창만 만든다

클래스 -> 반드시 있어야 하는 것들(ex 바퀴 ) 를 만들기 위한 공장 (공장에서는 무조건 이 설계대 대로 만든다)

메소드 -> 바퀴 중에서도 휠을 만드는지 고무 타이어를 만드는지 등 /목적: 바퀴를 만든다 /를 수행하기 위해  바퀴에 필요한 모든 부품들을 만드는 생산라인들 

명령 -> 생산라인(고무타이어 생산라인) 안에서  타이어를 만들기 위해 기계들이 직접 움직이는 것 (= 프로그램에서는 명령으로 기계를 움직여 준다)

 

main Class.java -> 이게 파로 소스 파일!

내 컴퓨터 안에서 실제로 저장되는 파일인데 클래스 이름이랑 같아야 한다 

소스 파일은 바퀴를 만들기 위한 공장의 서류인데 공장장이 바퀴 만드는 공장의 서류를 좀 보려고 열었더니 

전혀 다른 유리창 제조 공장의 간판과 내용이 들어있던 것이다!

 

public -> 개방형 , 접근제어자 = 접근을 허용하고 막는 문지기 역할

public class MainClass -> 공장을 개방하는 것 

public static void main(String[] args) 

- static : 공장을 항상 돌리는 것 

-void :  void 를 사용하면 이 안에서 실행된 작업들을 다른 메소드에서 호출하기처럼 불러와서 실행할 수 없고 무조건 void 안에서만 실행되고 끝난다. 단 print 같은 출력 문구가 있다면 콘솔창에 띄울 수 있다. print 가 없다면 콘솔창에 띄울 수 없지만 기능은 계속 돌아가고 있다 

 

public static void main(String[] args) 이거 자체가 class mainclass 안에 생성된 메소드이다.

메소드의 사전적 의미 -> 방식 방법. 그래서 public static void main(String[] args) 는 목적을 달성하기 위한 방법들을 하나의 우리로 가둔 거고 우리 안에는 실제 방법들을 넣어 준다 void 로 실행되었기 때문에 다른 메소드에서는  public static void main(String[] args)  안에서 실행된 내용들을 사용할 수 없다 

 

(String[] args) 

string - 문자열 형식들만 들어오는 통로 다른 형식들을 못 들어와 

[ ] -> 문자열 형식들이 들어오면 문자열 형식들로 배열을 만들자 

args -> ....?

 

 

public static void main(String[] args) {

System.out.print(Hello Java);

}

 

출력 불가능 

 

public static void main(String[] args) {
			System.out.print('Hello Java');			
		}
}

작은 따옴표 사용해도 불가능 

 

public static void main(String[] args) {
			System.out.print("Hello Java");			
		}

출력가능

 

public static void main(String[] args) {
			System.out.print("Hello" ,"Java");			
		}

 불가능

 

주석문 쓰고 싶을 때 //

범위를 주석문으로 사용하고 싶을 때 /* */

 

system ->  메인클래스 

out. -> 객체다. 객체는 목적이니까 out은 목적을 수행하기 위해 만든 기계 인셈!! 사실 앞에 PrintStream  이 사실 붙어있는데 너무 자주쓰는 출력 기능이라 개발자들이 사용자 편하라고 숨겨뒀다 ! 출력을 할 수 있는 기계 = 설계도를 가지고 있다 

print -> 실행버튼 ! 기계를 가지고  출력 레츠 고 실제로 실행을 담당하는 버튼이라 이걸 쓰면 출력 되는 것 !

 

public static void main(String[] args) {
			System.out.print("HelloJava");		
			System.out.print("HelloJava");
			System.out.print("HelloJava");
		}

HelloJavaHelloJavaHelloJava

 

public static void main(String[] args) {
			System.out.println("HelloJava");		
			System.out.println("HelloJava");
			System.out.println("HelloJava");
		}

HelloJava

HelloJava

HelloJava

 

public static void main(String[] args) {
			System.out.print("HelloJava");		
			System.out.println("HelloJava");
			System.out.println("HelloJava");
		}

HelloJavaHelloJava

HelloJava

 

public static void main(String[] args) {
			System.out.print("HelloJava");		
			System.out.print("HelloJava");
			System.out.println("HelloJava");
		}

HelloJavaHelloJavaHelloJava

print출력하고 출력문구 맨끝에 이어쓰는 거

println출력하고 다음줄에 이어쓰기 // ln -> 라인의 줄임말 

 

public static void main(String[] args) {
	System.out.println('A');	
	System.out.println('한');	
	System.out.println("A");	
	System.out.println('3');	
	System.out.println('&');
		}

문장은 " " 사용해야 출력이 된다 띄어쓰기도 포함해서 출력 된다 

단 ' '  를 사용할 때는 문장은 출력이 되지 않는다 무조건 한 '단어' 만 출력이 된다 

' ' 를 사용해도 숫자, 기호 출력이 가능하다 단 하나만 !

 

	System.out.println('A');	
	System.out.println('한');	
	System.out.println("&&&&&&&&");	-> 나 문장!
	System.out.println('3');	
	System.out.println('&');

"  "를 사용해도  특수기호 출력이 된다 

public static void main(String[] args) {
	System.out.println(123);	
	System.out.println(123 + 2);	
	System.out.println(123 * 2);	
	}

123 나열된 순으로 출력

123 + 2 더한 최종값 출력

123*2 곱한 최종값을 출력 

 

System.out.println{(123 * 2)+45};

에러에러 실행 안 됨 

 

System.out.println((123 * 2)+45);

우선순위로 묶인 괄호 값 계산 후 +45 한 값이 출력 

 

System.out.println(1 + '2');

51 이 나오는 이유 -> 숫자 2를 ' '  안에 담아서 얘는 문자 하나로 인식했다 문자는 컴퓨터에서 아스키 코드로 받아들여지기 때문에 아스키 코드 값인 50을 더해서 51이 되었다

 

printf -> 구멍을 뚫을게 여기에 넣고 싶은 거 넣어
%_ ->구멍에 넣으려면 날 꼭 붙여줘

public static void main(String[] args) {
	System.out.printf("안녕하세요 %s 건강하세요", "반갑습니다");
	System.out.println(); //개행만 사용하고 싶을 떄 이렇게도 사용 가능 !
	System.out.printf("안녕하세요 %s 건강하세요",("반갑습니다" +50)); //요렇게도 사용 가능 !

	}

안녕하세요 반갑습니다 건강하세요

안녕하세요 반갑습니다50 건강하세요 

 

 

public static void main(String[] args) {
	System.out.printf("%d", 1024);	// %d	
	System.out.printf("%c", '가');	// %c	
	System.out.printf("%f", 123.456);	// %f
	System.out.printf("%.2f", 123.456);	// %.2f

%d ->정수일 때만 사용 

%s -> 문자일때만 사용 

%f -> 소수점 일 떄만 사용 

%.2f -> 소수점 2자리까지 표시할 때만 반올림을 해 줘서 출력

*f 앞에 원하는 숫자를 입력하면 숫자 만큼의 소수점 자리 까지 출력을 해 준다 

 

 

package print;

public class MainClass {
	public static void main(String[] args) {
		System.out.printf("안녕하세요 %d 번입니다.", 1024);	// %d	
		System.out.println();
		System.out.printf("안녕하세요 %c 번입니다.", '가');	// %c	
		System.out.println();
		System.out.printf("안녕하세요 %f  cm 입니다", 164.4);	// %f
		System.out.println();
		System.out.printf("안녕하세요 %.2f  를 좋아합니다", 123.456);	// %.3f
			}
}

안녕하세요 1024 번입니다.

안녕하세요 가 번입니다.

안녕하세요 164.400000 cm 입니다

안녕하세요 123.46 를 좋아합니다

System.out.printf("이름: %s%n", "홍길동");
System.out.printf("나이: %d살%n", 20);

이름: 홍길동

나이: 20살 

이렇게 출력할 수 있음 

%n -> 개행 

홍길동까지 입력하고 다음행으로 넘어간다  println 도 마무리까지 하고 넘어감 !

 

public class MainClass {
	public static void main(String[] args) {
		System.out.printf("안녕하세요 %d 번입니다. %n", 1024);	// %d	

		System.out.printf("안녕하세요 %c 번입니다. %n", '가');	// %c	
	
		System.out.printf("안녕하세요 %f  cm 입니다 %n", 164.4);	// %f
		
		System.out.printf("안녕하세요 %.2f  를 좋아합니다 %n", 123.456);	// %.3f
			}
}

안녕하세요 1024 번입니다.

안녕하세요 가 번입니다.

안녕하세요 164.400000 cm 입니다

안녕하세요 123.46 를 좋아합니다

 

'탈출(Escape) 문자열' 또는 '특수 제어 문자'

: escape sequence(질의)

-> "방금 읽은 글자의 원래 의미에서 탈출해서, 특별한 행동을 시작해라!" 하고 컴퓨터에게 신호 주는 것 

 

종류 : 

\n -> 개행(줄바꿈) 문장 중간에서 엔터 키 사용하고 싶을 때 

System.out.print("안녕\n하세요");

안녕

하세요 

 

\b -> 왼쪽으로 한 칸 이동해서 바로 앞글자를 지우고 싶을 떄 

System.out.print("Hello\bJava");

Hell java

 \\ -> 역슬러시 출력 

public class MainClass {
	public static void main(String[] args) {
		System.out.print("\\\\나의 명언: I can do it\\\\ \n");
		System.out.print("\\나의 명언: I can do it\\");
		//System.out.print("\\\나의 명언: I can do it\\\");
	
			}
}

\\나의 명언: I can do it\\

\나의 명언: I can do it\ 

// \\ 하나당 하나의 역슬러시만 출력할 수 있어서 에러에러 

 

\t -> Tab 이동

public static void main(String[] args) {
		System.out.print("나의\t명언\t:\tI\tcan\tdo\ti");
	}

나의 명언 : I can do i

 

 \" ->큰따옴표  출력

public class MainClass {
	public static void main(String[] args) {
		System.out.print("\"나의 명언: I can do it\"");
			}
}

"나의 명언: I can do it"

 

 \' -> 작은따옴표  출력

public class MainClass {
	public static void main(String[] args) {
		System.out.print("\'나의 명언: I can do it\'");
			}
}

'나의 명언: I can do it'

 

하나의 이스케이프 시퀀스에는 하나씩만 입력가능 

public class MainClass {

	public static void main(String[] args) {
		
		System.out.printf("안녕 %s야 오늘 %s를 보니까 신기하네.", "감자");
        
    }
}

안녕 감자야 오늘 Exception in thread "main" java.util.MissingFormatArgumentException: Format specifier '%s'

at java.base/java.util.Formatter.format(Formatter.java:2790)

at java.base/java.io.PrintStream.implFormat(PrintStream.java:1367)

at java.base/java.io.PrintStream.format(PrintStream.java:1346)

at java.base/java.io.PrintStream.printf(PrintStream.java:1245)

at print.MainClass.main(MainClass.java:7)

 

에러에러 

 

 이스케이프 시퀀스 동시에 여러개 사용가능 

public static void main(String[] args) {	
		System.out.printf("안녕 %s야 오늘 %s를 보니까 신기하네.", "감자" ,"고구마");    
    }

안녕 감자야 오늘 고구마를 보니까 신기하네.

 

'Java > Java 개념 정리' 카테고리의 다른 글

java _array 배열  (0) 2026.05.21