숫자와 문자
- 문자(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만큼 감소
- ++: 증가 연산자로 값을 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();
- public static void 메소드이름() { 코드 };
입력과 출력
- 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 |