자바 기초

2023. 2. 19. 19:14· 정리/Java
목차
  1. Java 프로그램의 구성요소
  2. 필드(field, 변수)
  3. 메서드(method, 함수)
  4. 클래스
  5. 구성요소 형식
  6. 변수(field)
  7. Method 
  8. Class
  9. 식별자(identifier) 규칙 (변수명, 메서드명, 클래스명에 적용)
  10. Java Input/Output
  11. 자바의 입력
  12. 자바의 출력

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) 규칙 (변수명, 메서드명, 클래스명에 적용)

  • 주로 영문자와 숫자를 혼합하여 사용
  • (한글도 사용은 가능 하나 권장하지 않음)
  • 불가능한 규칙
    1. 첫글자 숫자 불가능
    2. 특수문자 사용 불가능 ( _ , $ 는 사용 가능)
    3. 예약어 사용 금지

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의 조합
        • 파일 등에서 데이터를 꺼내올 때 사용하기 좋음
      • 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
  1. Java 프로그램의 구성요소
  2. 필드(field, 변수)
  3. 메서드(method, 함수)
  4. 클래스
  5. 구성요소 형식
  6. 변수(field)
  7. Method 
  8. Class
  9. 식별자(identifier) 규칙 (변수명, 메서드명, 클래스명에 적용)
  10. Java Input/Output
  11. 자바의 입력
  12. 자바의 출력
'정리/Java' 카테고리의 다른 글
  • Java 변수
  • JVM의 메모리 구조
  • 객체지향 프로그래밍 (Objected Oriented Programming)
  • Java 연산자 / 제어, 반복문 / 배열
개발아기
개발아기
개발아기
개발자 지망생의 기록
개발아기
전체
오늘
어제
  • 분류 전체보기 (74)
    • 정리 (39)
      • Java (17)
      • JavaScript (4)
      • FrontEnd (9)
      • Database (2)
      • 알고리즘 (2)
      • Git (2)
      • Infra (3)
    • 알고리즘 문제풀이 (35)
      • 백준 (32)
      • SWEA (2)
      • 프로그래머스 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 미로탈출명령어
  • Baekjoon #BOJ #12865 #평범한배낭 #Java
  • Prometheus
  • grafana
  • docker
  • 프로그래머스
  • Java
  • node-exporter
  • Monitoring
  • springboot

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.0
개발아기
자바 기초
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.