기본문법
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레벨
→ 도메인은 고유한 이름이기 때문에 중복 방지 (뿐만 아니라 어디서 제작된건지 파악 가능)


