home
자바
home
🕤

01. 기초

기본문법

1.
// 한줄 주석 : 소스코드와는 무관한 (즉, 코드로 인식되지 않음) => 주로 코드에 대한 설명을 작성함
2.
/* * 여러줄 주석 : 클래스 안에 여러개의 메소드를 작성할 수 있음 (메소드 == 기능) */
3.
메인 메소드(프로그램 실행시 제일먼저 실행되는 메소드) : public static void main(String[] args) {}
4.
일반메소드 : public void 메소드명() {}
5.
출력문 : print, println, printf
System.out.println(출력하고자하는값); => 해당 값을 출력 한 후 "한줄띄워주는" 역할
System.out.print(출력하고자하는값); => 해당 값을 출력만 하고 끝 (한 줄 띄워주기X)
줄바꿈(개행)을 의미하는 구문 == \n
package com.kh.first; //패키지 선언부 (이 클래스가 어떤 패키지에 속해있는지 나타냄) // 한줄 주석 : 소스코드와는 무관한 (즉, 코드로 인식되지 않음) => 주로 코드에 대한 설명을 작성함 /* * 여러줄 주석 * * 클래스 안에 여러개의 메소드를 작성할 수 있음 * 메소드 == 기능 * * 단, 이 클래스 실행시 제일 먼저 찾아서 실행되는 메소드는 main메소드!! * */ public class HelloWorld { // HelloWorld 클래스 영역 시작 // 메인 메소드(프로그램 실행시 제일먼저 실행되는 메소드) public static void main(String[] args) { // 뭔가를 화면에 출력하고자 할때 출력문을 통해 작업 (print, println, printf) // System.out.println(출력하고자하는값); => 해당 값을 출력 한 후 "한줄띄워주는" 역할 // ln은 line의 약자 System.out.println("Hi Everyone!!"); // System.out.print(출력하고자하는값); => 해당 값을 출력만 하고 끝 (한 줄 띄워주기X) System.out.print("안녕하세요\n"); System.out.print("여러분~!"); // 줄바꿈(개행)을 의미하는 구문 == \n } } // HelloWorld 클래스 영역 끝
Java
복사

원칙 (지키지 않아도 오류는 나지 않지만, 하나의 약속)

클래스명 => 대문자로 시작 패키지명 => 소문자로 시작 메소드명 => 소문자로 시작 변수명 => 소문자로 시작
공통적으로 지켜줘야할 원칙 (낙타표기법 == CamelCase) 여러개의 단어를 조합해서 이름을 지을 때는 각 단어 앞 문자는 대문자로!
ex) 클래스명 Methodtest → MethodTest

클래스와 메소드

public class MethodTest { // com.kh.first.MethodTest /* * 한 클래스 내에 여러개의 메소드(기능)를 정의 해 둘 수 있음. * 무조건 메인 메소드를 포함할 필요도 없음. */ //메인메소드가 아닌 메소드는 호출해야만 실행. 메인메소드는 자동으로 실행. public void testPrintA() { // 이 메소드가 호출되는 순간 실행될 내용 System.out.println("첫번째 메소드 실행"); testPrintB(); // 같은 클래스 내에 있는 메소드 호출시 바로 메소드명(); testPrintC(); } public void testPrintB() { System.out.println("두번째 메소드 실행"); } public void testPrintC() { System.out.println("세번째 메소드 실행"); //testPrintA(); } }
Java
복사

출력과 산술연산

// 1. 숫자 출력 => 따옴표 없이 System.out.println(123); // 정수값 출력 System.out.println(1.23); // 실수값 출력 // 2. 문자(한글자) 출력 => 홑따옴표 이용 System.out.println('a'); System.out.println('강'); // 3. 문자열(여러글자) 출력 => 쌍따옴표 이용 System.out.println("\"안녕\"하세요"); System.out.println("반갑\\t습니다"); // 4. 산술연산한 결과 출력 System.out.println(123 + 456); // 579 System.out.println(100 - 200); // -100 // 5. 문자열("")과 그 외의 값들의 덧셈연산 => 문자열화 됨(하나의 문자열로 연이어짐) System.out.println("하이" + 'a'); // "하이a" System.out.println("안녕" + 123); // "안녕123" System.out.println("반갑" + 111 + 222); // "반갑111" + 222 => "반갑111222"
Java
복사
System.out.println(9 + 9); //18 System.out.println("9" + 9); //"99" System.out.println(9 + "9"); //"99" System.out.println("9" + "9"); //"99" System.out.println(9 + 9 + "9"); // 18 + "9" => "189" System.out.println(9 + "9" + 9); // "99" + 9 => "999" System.out.println("9" + 9 + 9); // "99" + 9 => "999" System.out.println("9" + (9 + 9)); //"9" + 18 => "918" // 연산에도 순서가 존재함! // 산술연산 (+, -, *, /, %)
Java
복사

실행 메소드

package com.kh.run; //import문. 선언문. import com.kh.first.MethodTest; // 해당 패키지에 있는 클래스를 그냥 쓰겠다 라고 선언한 구문. public class Run { public static void main(String[] args) { System.out.println("프로그램 시작"); /* * 미리 정의해둔 메소드를 호출 해주면 됨! * 다른 클래스에 있는 메소드를 호출하고자 할 때? */ // 1) 호출할 메소드가 존재하는 클래스를 생성(new)해라. // [표현법] 클래스명 대변할이름 = new 클래스명(); //MethodTest mt = new MethodTest(); // => 기본적으로 현재 같은 패키지 내에 다음과 같은 클래스를 찾는데, // 다른 패키지에 존재하는 클래스이기 때문에 찾을 수가 없는 것임. // 해결방법1. 해당 클래스가 정확히 어떤 패키지에 있는 클래스인지 명시하는 방법(풀클래스명) //com.kh.first.MethodTest mt = new com.kh.first.MethodTest(); // 해결방법2. 그냥 클래스명만을 가지고 작성하되 단, 이 클래스가 어떤 패키지에 속해있는지 선언문(import) 추가 MethodTest mt = new MethodTest(); // 2) 생성 후 이제 해당 클래스에 있는 메소드 호출(실행) // [표현법] 대변할이름.호출하고자하는메소드명(); /* mt.testPrintA(); mt.testPrintB(); mt.testPrintC(); */ mt.testPrintA(); } }
Java
복사
package com.kh.run; import com.kh.first.ValuePrint; public class Run2 { public static void main(String[] args) { // 다른 클래스에 존재하는 메소드 호출하고 싶을때 // 1) 클래스 생성 // 클래스 명 대변할이름 = new 클래스명(); ValuePrint vp = new ValuePrint(); // 2) 해당 클래스에 존재하는 메소드 호출 // 대변할이름.메소드명(); vp.printValue(); vp.sumStringNumber(); } }
Java
복사

패키지

자바클래스들을 보관하는 폴더
비슷한 역할을 하는 클래스들의 보관함 (폴더) → 서로 관련이 있는 클래스들을 묶어서 보관
기본패키지 안에 클래스를 만드는건 권장X
모든 클래스를 기본패키지에 몰아넣으면 관리하기 힘듦 (카테고리별로 분류해서 관리해야 유지보수에 용이함!)
기본패키지에 만들어진 클래스는 다른 패키지에서 사용 불가!!
패키지는 세 단계 이상으로 만들어 주는걸 권장)
ex) com.회사명.프로젝트명
주로 도메인의 역순으로 1, 2레벨 → 도메인은 고유한 이름이기 때문에 중복 방지 (뿐만 아니라 어디서 제작된건지 파악 가능)