Java

생활코딩! 자바 프로그래밍 입문 / 1장~28장 정리

Bay Im 2023. 8. 28. 22:59

숫자와 문자

  • 문자(character)
    • 한 글자를 작은 따옴표로 표시
  • 문자열(String)
    • 여러 개의 문자를 큰 따옴표로 표시
  • 문자열 더하기
      • + 연산자 사용
  • 문자열 안의 큰 따옴표
    • \를 큰따옴표 앞에 배치하면 문자열 따옴표로 인식
  • 줄 바꿈
    • \n 입력

 

변수

  • 변수의 선언(declare)
    • 데이터 형식과 변수의 이름으로 구성
    • ex) int a;
    • ex) String a, b;
  • 변수의 할당(assign)
    • 변수에 값을 대입한 것
    • ex) a = 1;
    • 재할당 ex) a = 2;
  • 동시에 선언 및 할당
    • String first = “coding”;
  • 실수
    • double 데이터 형식 사용
  • 정수
    • int 데이터 형식 사용
  • 문자열
    • String 데이터 형식 사용

 

주석과 세미콜론

  • 주석
    • 로직을 설명, 코드 비활성화, 코드의 사용법을 문서화할 때 사용
  • 한 줄짜리 주석
    • // 사용
  • 여러 줄 주석
    • /* */ 사용
  • 세미콜론
    • 문장이 끝났음을 알려주는 기호

 

데이터 타입

  • 비트(bit)
    • 프로그래밍에서 가장 작은 단위
    • 0과 1이 비트
  • 바이트(byte)
    • 비트가 8개 모이면 1바이트
  • KB, MB, GB, TB, PB, EB, ZB
    • 1비트가 8개 모이면 1바이트가 되고, 나머지 단위는 1024를 곱하면 된다.
  • 정수형
    • byte: 1byte
    • short: 2byte
    • int: 4byte
    • long: 8byte (숫자 뒤에 L 붙이기)
  • 실수형
    • float: 4byte (숫자 뒤에 F 붙이기)
    • double: 8byte
  • 문자형
    • char: 2byte

 

상수의 데이터 타입

  • 상수(constant)
    • 변하지 않는 값을 의미
    • 변수 이름 대문자로 짓기

 

형 변환

  • 형 변환(type conversion)
    • 데이터 타입을 변환한다는 의미
  • 자동 형 변환
    • 범위가 좁은 데이터 타입에서 넓은 데이터 타입으로만 허용
      • float → double 은 자동 형 변환
      • double → float는 에러 발생
  • 명시적 형 변환
    • 수동으로 직접 형 변환
      • ex) float a = (float) 100.0;
      • ex) int b = (int) 100.0F;

 

연산자

  • 연산자(operator)
  • 산술 연산자
    • +, -, *, /, %
  • 단항 연산자
    • ++: 증가 연산자로 값을 1만큼 증가
      • i++; 은 i = i + 1;과 같다.
      • ++i는 i 값에 1을 더하는 역할
      • i++은 괄호 안에서 더해지는 것이 아니라 출력이 끝난 후에 값이 증가
    • --: 감소 연산자로 값을 1만큼 감소

 

비교와 불린

  • 비교 연산자
    • ==
      • 좌항과 우항이 같은지 비교하는 연산자
      • true, false 중 값 리턴
    • !=
      • 같지 않은지 비교하는 연산자
    • 부등호
      • , <, > =, < =
  • equals()
    • 문자열 비교 시 사용하는 메소드
    • ex) 문자열변수.equals(비교할문자열변수)

 

조건문

  • if 문
  • else - if 문
  • 중첩 if 문
  • switch 문
    • break 문 넣기

 

논리 연산자

  • && (and 연산자)
  • || (or 연산자)
  • ! (not 연산자)

 

반복문

  • while 문
  • for 문
  • for-each
    • ex) for (String e: members(배열변수) { sout(e); }
  • break
    • 반복문에서 break 만나는 순간 종료 후 반복문 밖의 코드가 실행
  • continue
    • 반복문에서 continue 만나는 순간 반복이 종료, 그다음 반복이 다시 실행
    • 그 순간은 일단 멈추고 다시 for 문으로 올라가 계속해서 실행되는 것

 

배열

  • 배열(Array)
    • 연관된 여러 개의 데이터를 그룹화 하는데 사용
    • 배열 정의 전, 해당 배열에 값을 몇 개 담을지 지정해야 한다.
      • ex) String[] classGroup = new String[3];
  • 배열의 정의
    • 데이터타입[] 변수이름 = {여러 데이터 값들};
    • ex) String[] classGroup = {”김ㅁㅁ”, “최ㅁㅁ”, “박ㅁㅁ”};
  • 배열의 제어
    • 값 가져오기
      • sout(배열변수[0]); ⇒ 배열의 0번째 값 출력
    • 배열의 개수
      • length 이용
      • sout(배열변수.length); ⇒ 배열의 크기 출력

 

메소드

  • 메소드(method) 혹은 함수(function)
  • 메소드의 정의와 호출
    • public static void 메소드이름() { 코드 };
      • void는 반환 값이 없다는 것을 명시적으로 선언한 것이다.
    • public static 데이터타입 메소드이름(매개변수) { 코드 };
      • return으로 출력 값 외부에 반환
      • 반환 값은 메소드의 선언한 데이터 타입과 동일해야 한다.
    • 메인에서 메소드이름(); 으로 호출
      • 호출한 값을 변수에 담을 수도 있다.
      • ex) String[] members = getMembers();

 

입력과 출력

  • Scanner 라이브러리
    • 사용자에게 입력 값 받을 때 사용
      • ex) import java.util.Scanner;
      • Scanner scanner = new Scanner(System.in);
      • int i = scanner.nextInt();
  • try-catch
    • 예외 처리를 위한 구문

 

객체지향 프로그래밍

  • 추상화(abstract)
    • 문제를 소프트웨어 방식으로 단순화하는 행위
  • 부품화
    • 객체를 재사용 할 수 있게 하는 것
  • 은닉화, 캡슐화
    • 내부 동작 방법을 숨기고 사용자에게는 사용법만 노출하는 것
  • 인터페이스
    • 장치와 장치를 연결하는 연결점

 

클래스와 인스턴스, 객체

  • 객체(object)
    • 변수와 메소드의 집합
  • 클래스(class)
  • 인스턴스(instance)
    • 클래스 호출
      • 클래스이름 변수이름 = new 클래스이름();
    • this
      • this는 인스턴스 자신을 의미
      • this.는 클래스 인스턴스를 가리킨다.
      • this.멤버변수는 클래스를 정의할 때 함께 정의했던 멤버 변수를 가르키게 되는것이다.

 

유효범위

  • 전역 변수(global variable)
    • 클래스 정의에 직접적으로 속한 변수
  • 지역 변수(local variable)
    • 메소드 안에서 선언된 변수

 

상속

  • extends
    • 클래스의 extends로 상속 시 자신이 정의하지 않는 메소드들도 부모 클래스에서 호출 가능
  • super
    • super은 부모 클래스를 의미
    • super라고 쓰고 괄호가 붙어있으면 부모 클래스의 생성자를 의미

 

오버라이딩

  • 오버라이딩(overriding)
    • 자식 클래스에 메소드나 변수를 추가해서 부모 클래스가 가진 기능보다 더 많은 기능 제공
    • 오버라이딩하기 위해서는 부모 클래스에서의 반환 타입과 자식 클래스에서의 반환 타입이 일치해야 한다.
    • 메소드의 이름이 같아야 하고 매개변수가 있을 경우 개수와 타입이 일치해야 한다.
  • 메소드 오버라이딩
    • 부모 클래스의 메소드는 무시되고 자식 클래스가 가진 메소드가 실행된다.
    • 자식 클래스에서 메소드의 기능을 덮어써서 새로운 내용의 메소드 재정의(기능 변경)
    • super.메소드이름(): 부모 클래스가 가진 메소드 호출

 

오버로딩

  • 오버로딩(overloading)
    • 클래스에 메소드를 정의할 때 메소드 이름이 같지만 서로 다른 매개변수 형식을 가진 메소드를 여러 개 정의할 수 있는 방법
    • 메소드 이름이 같아도 매개변수 형식이나 매개변수 개수가 다르면 오버로딩이 가능
    • 메소드의 매개변수 형식이 같더라도 반환형(반환값)이 달라지면 오류 발생

'Java' 카테고리의 다른 글

[Java] String 클래스  (0) 2024.03.11
[Java] 형변환  (0) 2024.03.11
[Java] 변수, 자료형  (0) 2024.03.11
[Java] psvm, 주석, 출력문  (0) 2024.03.11
[Java] Java Platform의 이해  (0) 2024.03.11