목차
Java 프로그램의 구성요소
필드(field, 변수)
- 데이터 속성, 자료구조, 데이터를 담는 그릇 (변수가 2번이상 사용되면)
- 명명법 : 첫 글자 소문자, 단어 뒤에 ()가 포함되지 않음
메서드(method, 함수)
- 기능, 행위
- 명명 : 첫글자 소문자, 단어 뒤에 ()가 포함됨
클래스
- 자바프로그램 기본단위 (파일), 필드와 메서드를 담는 울타리(template)
- 명명법 : 첫글자 대문자
예시
/*System. out. println();*/
/*클래스 필드 메서드 */
public class System {
PrintStream out; // System class 안에 PrintStream class 변수를 정의
int su; // 정수형 변수 선언
su = 100 // 변수 초기화 = 변수에 값 할당
void hello() {
//...
}
}
구성요소 형식
변수(field)
- 자료형
- char, byte, short, int, long, float, double, boolean, String 기본자료형(8개) + α(클래스 자료형 + Reference 자료형)
- 숫자
- 정수
- byte : 1-byte
- short : 2-byte
- int : 4-byte
- long : 8-byte
- 실수
- float : 4-byte
- double : 8-byte
- 문자
- char : 1-byte
- 논리
- boolean
- 문자열
- String
- 정수
- 속성 변수 : 기본 자료형으로 생성된 변수
- 참조 변수 : 속성 변수를 제외한 나머지 변수
A a = new A(); //a는 참조변수
int room; //room은 속성변수
int []rooms; //rooms는 array이기 때문에 참조변수
Method
- 형식
리턴자료형 메서드명 (매개변수) {
//메서드 시작
} //메서드 끝
💁♀️ 리턴 자료형은 변수 자료형 이외에 void(반환값 없음)를 사용 가능하다
💁♀️ 매개변수 = 인수, 인자, argument, parameter
- 메서드 예시
Coffee lime(int coin) {
moveToVM();
insertCoin();
clickButton();
comeBack();
return; //메서드 리턴 자료형이 void일 경우 생략 가능
}
Class
- 형식
class 클래스명 { //클래스 시작
//...
//변수 선언
//메서드 선언
} //클래스 종료
- 예시
class A { }
class B {
int su = 300; //멤버변수, 필드
void hello() { //멤버 메서드
int su2 = 300; //지역변수, field가 아님
System.out.println("안녕");
}
}
- 사용정적 메모리 할당 : static 사용 ... static은 클래스 앞이 아니라 필드/메소드 앞에 붙임 ⇒ 알고리즘 문제풀이 등에 주로 사용
- static class A { // X static int su; // O static void hello() { // O System.out.println(""); } static class B { //정적 중첩 클래스 O } }
- 동적 메모리 할당 : 클래스명 참조변수 = new 클래스명(); ⇒ CRUD를 사용할 때 주로 사용
식별자(identifier) 규칙 (변수명, 메서드명, 클래스명에 적용)
- 주로 영문자와 숫자를 혼합하여 사용
- (한글도 사용은 가능 하나 권장하지 않음)
- 불가능한 규칙
- 첫글자 숫자 불가능
- 특수문자 사용 불가능 ( _ , $ 는 사용 가능)
- 예약어 사용 금지
Java Input/Output
- Stream : 단방향으로 데이터를 처리하는 연속된 Byte의 흐름
| | Input | Output |
|:----:|:-----------:|:------------:|
| byte | InputStream | OutputStream |
| char | Reader | Writer |
- 현재 알고리즘 학습 단계에서는 Scanner를 많이 사용할 예정
자바의 입력
- 프로그램에 필요한 데이터를 소스에 정의하지 않고 필요한 시점에 프로그램 외부에서 전달받는 것
/*소스에 정의하는 방법*/
int su1 = 300;
/*외부에서 전달받는 방법*/
int su2 = read(); //System.in.read(); <= 아스키코드 입력
- 입력 종류
- 바이트단위 입력
- 1 byte : 자바에서 데이터를 구성하는 기본 단위
- System.in : 표준 입력 ↔ System.out : 표준 출력
- System.in.read()는 ASCII코드(정수)로 입력을 받음int su = System.in.read() - 48 의 과정이 필요함
- → ‘0’을 입력시 변수에는 ‘0’의 ASCII코드 값인 48이 저장됨
- 문자를 입력받고자 할 때 → char ch = (char)System.in.read()
- 라인단위 입력
- 한 바이트를 통해 표현할 수 있는 데이터가 제한적
- 문자열과 10 이상의 수를 표현할 수 있음
- BufferedReader 클래스
- readLine() 메서드를 이용하여 처음 입력한 문자부터 엔터 바로 이전에 입력한 문자까지를 문자열로 프로그램에 전달
- BufferedReader br = new BufferedReader(”입력장치”); String str = br.readLine();
- 예제
BufferedReader br = new BufferedReader("입력장치"); String str = br.readLine(); //str = "123" System.out.println(str); //123을 출력 System.out.println(str + 100); //123100을 출력 int su = Integer.parseInt(str); //su = 123 System.out.println(su + 100); //223을 출력
- 바이트단위 입력
- Scanner
- 설명
- 자바 입력을 쉽게 구현하도록 만든 클래스
- BufferedReader에 비해 사용이 간편
- BufferedReader보다는 성능이 떨어짐
- 주요 메소드
- nextInt() : 정수 입력
- nextDouble() : 실수 입력
- next() : 문자열 입력
- whitespace(공백)를 통해 구분된 데이터를 입력 받는다.
- 공백 : 한개 이상의 SpaceBar / Tab / Enter의 조합
- 파일 등에서 데이터를 꺼내올 때 사용하기 좋음
- whitespace(공백)를 통해 구분된 데이터를 입력 받는다.
- nextLine() : 문자열 입력, BufferedReader의 readLine()과 동일하게 동작
- 한줄에 있는 모든 데이터를 입력 받는다. (엔터가 입력될 때까지 입력)
- 주의사항
- Scanner 객체 하나로 nextInt(), nextDouble(), next() 를 혼용해서 사용하는 것은 상관 없으나 nextLine() 은 혼용해서 사용하는 것은 권장하지 않음.
- 사용
- import java.util.Scanner
- 예제
Scanner sc = new Scanner(system.in); int num = sc.nextInt(); sc.close();
- 설명
자바의 출력
- System.out.print() : 줄바꿈 하지 않고 ()안의 내용을 출력
- System.out.println() : () 안의 내용을 출력한 후 줄바꿈
- System.out.printf() : JDK5부터 지원, C언어의 출력 과 동일한 방법 (Format 설정이 자유로움)
'정리 > Java' 카테고리의 다른 글
Java 메서드 (0) | 2023.03.07 |
---|---|
Java 변수 (0) | 2023.03.07 |
JVM의 메모리 구조 (0) | 2023.03.07 |
객체지향 프로그래밍 (Objected Oriented Programming) (0) | 2023.03.07 |
Java 연산자 / 제어, 반복문 / 배열 (0) | 2023.03.07 |
Java 프로그램의 구성요소
필드(field, 변수)
- 데이터 속성, 자료구조, 데이터를 담는 그릇 (변수가 2번이상 사용되면)
- 명명법 : 첫 글자 소문자, 단어 뒤에 ()가 포함되지 않음
메서드(method, 함수)
- 기능, 행위
- 명명 : 첫글자 소문자, 단어 뒤에 ()가 포함됨
클래스
- 자바프로그램 기본단위 (파일), 필드와 메서드를 담는 울타리(template)
- 명명법 : 첫글자 대문자
예시
/*System. out. println();*/
/*클래스 필드 메서드 */
public class System {
PrintStream out; // System class 안에 PrintStream class 변수를 정의
int su; // 정수형 변수 선언
su = 100 // 변수 초기화 = 변수에 값 할당
void hello() {
//...
}
}
구성요소 형식
변수(field)
- 자료형
- char, byte, short, int, long, float, double, boolean, String 기본자료형(8개) + α(클래스 자료형 + Reference 자료형)
- 숫자
- 정수
- byte : 1-byte
- short : 2-byte
- int : 4-byte
- long : 8-byte
- 실수
- float : 4-byte
- double : 8-byte
- 문자
- char : 1-byte
- 논리
- boolean
- 문자열
- String
- 정수
- 속성 변수 : 기본 자료형으로 생성된 변수
- 참조 변수 : 속성 변수를 제외한 나머지 변수
A a = new A(); //a는 참조변수
int room; //room은 속성변수
int []rooms; //rooms는 array이기 때문에 참조변수
Method
- 형식
리턴자료형 메서드명 (매개변수) {
//메서드 시작
} //메서드 끝
💁♀️ 리턴 자료형은 변수 자료형 이외에 void(반환값 없음)를 사용 가능하다
💁♀️ 매개변수 = 인수, 인자, argument, parameter
- 메서드 예시
Coffee lime(int coin) {
moveToVM();
insertCoin();
clickButton();
comeBack();
return; //메서드 리턴 자료형이 void일 경우 생략 가능
}
Class
- 형식
class 클래스명 { //클래스 시작
//...
//변수 선언
//메서드 선언
} //클래스 종료
- 예시
class A { }
class B {
int su = 300; //멤버변수, 필드
void hello() { //멤버 메서드
int su2 = 300; //지역변수, field가 아님
System.out.println("안녕");
}
}
- 사용정적 메모리 할당 : static 사용 ... static은 클래스 앞이 아니라 필드/메소드 앞에 붙임 ⇒ 알고리즘 문제풀이 등에 주로 사용
- static class A { // X static int su; // O static void hello() { // O System.out.println(""); } static class B { //정적 중첩 클래스 O } }
- 동적 메모리 할당 : 클래스명 참조변수 = new 클래스명(); ⇒ CRUD를 사용할 때 주로 사용
식별자(identifier) 규칙 (변수명, 메서드명, 클래스명에 적용)
- 주로 영문자와 숫자를 혼합하여 사용
- (한글도 사용은 가능 하나 권장하지 않음)
- 불가능한 규칙
- 첫글자 숫자 불가능
- 특수문자 사용 불가능 ( _ , $ 는 사용 가능)
- 예약어 사용 금지
Java Input/Output
- Stream : 단방향으로 데이터를 처리하는 연속된 Byte의 흐름
| | Input | Output |
|:----:|:-----------:|:------------:|
| byte | InputStream | OutputStream |
| char | Reader | Writer |
- 현재 알고리즘 학습 단계에서는 Scanner를 많이 사용할 예정
자바의 입력
- 프로그램에 필요한 데이터를 소스에 정의하지 않고 필요한 시점에 프로그램 외부에서 전달받는 것
/*소스에 정의하는 방법*/
int su1 = 300;
/*외부에서 전달받는 방법*/
int su2 = read(); //System.in.read(); <= 아스키코드 입력
- 입력 종류
- 바이트단위 입력
- 1 byte : 자바에서 데이터를 구성하는 기본 단위
- System.in : 표준 입력 ↔ System.out : 표준 출력
- System.in.read()는 ASCII코드(정수)로 입력을 받음int su = System.in.read() - 48 의 과정이 필요함
- → ‘0’을 입력시 변수에는 ‘0’의 ASCII코드 값인 48이 저장됨
- 문자를 입력받고자 할 때 → char ch = (char)System.in.read()
- 라인단위 입력
- 한 바이트를 통해 표현할 수 있는 데이터가 제한적
- 문자열과 10 이상의 수를 표현할 수 있음
- BufferedReader 클래스
- readLine() 메서드를 이용하여 처음 입력한 문자부터 엔터 바로 이전에 입력한 문자까지를 문자열로 프로그램에 전달
- BufferedReader br = new BufferedReader(”입력장치”); String str = br.readLine();
- 예제
BufferedReader br = new BufferedReader("입력장치"); String str = br.readLine(); //str = "123" System.out.println(str); //123을 출력 System.out.println(str + 100); //123100을 출력 int su = Integer.parseInt(str); //su = 123 System.out.println(su + 100); //223을 출력
- 바이트단위 입력
- Scanner
- 설명
- 자바 입력을 쉽게 구현하도록 만든 클래스
- BufferedReader에 비해 사용이 간편
- BufferedReader보다는 성능이 떨어짐
- 주요 메소드
- nextInt() : 정수 입력
- nextDouble() : 실수 입력
- next() : 문자열 입력
- whitespace(공백)를 통해 구분된 데이터를 입력 받는다.
- 공백 : 한개 이상의 SpaceBar / Tab / Enter의 조합
- 파일 등에서 데이터를 꺼내올 때 사용하기 좋음
- whitespace(공백)를 통해 구분된 데이터를 입력 받는다.
- nextLine() : 문자열 입력, BufferedReader의 readLine()과 동일하게 동작
- 한줄에 있는 모든 데이터를 입력 받는다. (엔터가 입력될 때까지 입력)
- 주의사항
- Scanner 객체 하나로 nextInt(), nextDouble(), next() 를 혼용해서 사용하는 것은 상관 없으나 nextLine() 은 혼용해서 사용하는 것은 권장하지 않음.
- 사용
- import java.util.Scanner
- 예제
Scanner sc = new Scanner(system.in); int num = sc.nextInt(); sc.close();
- 설명
자바의 출력
- System.out.print() : 줄바꿈 하지 않고 ()안의 내용을 출력
- System.out.println() : () 안의 내용을 출력한 후 줄바꿈
- System.out.printf() : JDK5부터 지원, C언어의 출력 과 동일한 방법 (Format 설정이 자유로움)
'정리 > Java' 카테고리의 다른 글
Java 메서드 (0) | 2023.03.07 |
---|---|
Java 변수 (0) | 2023.03.07 |
JVM의 메모리 구조 (0) | 2023.03.07 |
객체지향 프로그래밍 (Objected Oriented Programming) (0) | 2023.03.07 |
Java 연산자 / 제어, 반복문 / 배열 (0) | 2023.03.07 |