~ 자바의 신 정리 ~
chapter 1
클래스
자바의 가장 작은 단위는 클래스이다.
클래스 안에 변수를 선언하면 이를 상태라 하고 메소드를 선언하면 행동이라고 볼 수 있다.
클래스는 상태(state) 행동(behavior)이 있어야만 한다.
메소드는 클래스 내에서 행동에 속하는 부분으로 특정한 작업을 수행하는 단위이다. 매개변수로 값을 받을 수 있고 값을 받지 않아도 된다. 메서드 내에 작성된 코드에 따라 특정한 행동을 수행한 후 리턴타입에 따라 값을 반환하기도 하고 리턴타입이 void인 경우에는 작업만 수행하고 행동을 마친다.
메소드는 어딘가 소속이 되어 있어야 하기 때문에 클래스 안에 메소드를 위치 시켜야 한다.
매개 변수
매개 변수는 클래스 안에, 메소드 밖에 정의한다.
public class DoorLockManager{
String currentPassword;
public boolean checkPassword(String password){
//중간 생략
}
//이하 메소드 생략
}
세미콜론
자바에서 세미콜론(;)은 한 줄을 의미한다.
그렇지 않으면, 다음 줄도 같은 줄로 생각을 한다.
System.out.prrintln() System.out.print()
println() 은 줄 바꾸고, print()는 바꾸지 않는다.
chapter 2
메소드 생성
//1. 제어자 2.리턴 타입 3.메소드 이름 4. 매개 변수 목록
public static void main(String[] args){
//6. 메소드 내용
System.out.println("Calculator class tarted");
}
1. 제어자 main() 메소드에 있는 public static 과 같은 메소드의 특성을 정하는 부분
2. 리턴 타입 메소드가 끝났을 때 돌려주는 타입
3. 메소드 이름 소괄호 앞에 있는 메소드 이름
4. 매개 변수 목록 소괄호 안에 있는 매개변수의 목록을 말한다.
5. 예외 목록 메소드의 소괄호가 끝나는 부분과 중괄호가 시작하는 부분 사이에 예외 목록 선언 가능
6. 메소드 내용 중괄호 안에 있는 내용들
메소드를 선언할 때 반드시 꼭 있어야 하는 세 가지
- 리턴 타입
- 메소드명
- 메소드 내용
chapter 3
객체지향 언어
public class Car {
int speed;
int distanace;
String color;
public Car() { // 생성자
}
public void speedUp(){
speed = speed + 5
}
public void breakDown(){
speed = speed - 10
}
public int getCurrentSpeed(){
return speed;
}
}
생성자
생성자는 클래스의 객체를 생성할 때 필요하다.
클래스와 객체
클래스는 그 자체만으로 일을 할 수 없고, 객체를 생성해야지만 우리가 일을 시킬 수 있다.
각각의 실제 사물을 나타내기 위한 것을 "객체 Object "혹은 "인스턴스 instance "라고 한다.
클래스는 설계도, 객체는 설계도를 바탕으로 만들어낸 구체적이고 실질적인 건축물에 비유할 수 있을 것 같다.
붕어빵 틀과 붕어빵. 클래스는 그 자체로 어떤 작업을 수행하지 않고 객체를 생성해서 사용할 수 있다.
내가 이해하기로는
클래스는 포괄적, 껍데기
객체는 구체적, 실체
클래스는 말 그대로 차 Car 클래스 이고 Car 클래스를 이용하여 객체를 생성해야 한다.
개똥이 차 dogCar 객체와 소똥이 차 cowCar라는 객체가 생성된다.
//예약어 //생성자
Car dogCar = new Car();
Car cowCar = new Car();
chapter 4
자바에는 네 가지 변수가 존재
- 지역 변수 : 중괄호 내에서 선언된 변수
- 매개 변수 : 메소드에 넘겨주는 변수
- 인스턴스 변수 : 메소드 밖에, 클래스 안에 선언된 변수, 앞에 static이라는 예약어가 없어야 한다. 붙이면 클래스 변수다.
- 클래스 변수 : 인스턴스 변수처럼 메소드 밖에, 클래스 안에 선언된 변수 중에서 타입 선언 앞에 static 예약어가 있는 변수
변수 사용
public class VariableTypesKor {
int 인스턴스_변수;
static int 클래스_변수;
public void method(int 매개_변수){
int 지역_변수
}
}
변수의 생명 주기
- 지역 변수 : 중괄호 내에서
- 매개 변수 : 메소드 호출될 때 생명 시작, 메소드 끝나면 소멸
- 인스턴스 변수 : 객체 생성될 때 생명이 시작되고, 그 객체를 참조하고 있는 다른 객체가 없으면 소멸
- 클래스 변수 :클래스가 처음 호출될 때 생명 시작되고, 자바 프로그램이 끝날 때 소멸된다.
자바의 두 가지 자료형
자바의 자료형 | |||
기본 자료형 | 참조 자료형 | ||
new를 사용하지 않고 바로 초기화 가능 | new 를 사용해서 초기화 가능한 것, String은 참조 자료형이지만 유일하게 new로 객체 생성 안해도 되는 유일한 타입 |
1 바이트 = 8 비트
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
기본 자료형
자료형 | 크기 | 값의 표현범위 | |
정수형 | char | 1byte | -128이상 +127이하(8bit=2^8=256가지) |
short | 2byte | -32,768이상 +32,767이하(16bit=2^16=65,536가지) | |
int | 4byte | -2,147,483,648이상 +2,147,483,647이하(32bit=2^32가지) | |
long | 4byte | -2,147,483,648이상 +2,147,483,647이하(32bit=2^32가지) | |
long long | 8byte | (64bit=2^64가지) | |
실수형 | float | 4byte | +-3.4 * 10^-37이상 +-3.4 * 10^+38이하 |
double | 8byte | +-1.7 * 10^-307이상 +-1.7 * 10^+308이하 | |
long double | 8byte 이상 | double 이상의 표현범위 |
chapter 5
산술 연산자 + - * / %
복합 대입 연산자 += -= *= /= %=
단항 연산자 + - ++ -- !
비교 연산자 == != > >= < <=
연산자 우선순위
우선순위 | 연산자 | 설명 | 결합 방향 |
1 | [] | 첨자 연산자 | -> |
. | 멤버 연산자 | -> | |
2 | ++ | 후위 증가 연산자 | -> |
-- | 후위 감소 연산자 | -> | |
3 | ! | 논리 NOT 연산자 | <- |
~ | 비트 NOT 연산자 | <- | |
+ | 양의 부호 (단항 연산자) | <- | |
- | 음의 부호 (단항 연산자) | <- | |
++ | 전위 증가 연산자 | <- | |
-- | 전위 감소 연산자 | <- | |
(타입) | 타입 캐스트 연산자 | <- | |
4 | * | 곱셈 연산자 | -> |
/ | 나눗셈 연산자 | -> | |
% | 나머지 연산자 | -> | |
5 | + | 덧셈 연산자 (이항 연산자) | -> |
- | 뺄셈 연산자 (이항 연산자) | -> | |
6 | << | 비트 왼쪽 시프트 연산자 | -> |
>> | 부호 비트를 확장하면서 비트 오른쪽 시프트 | -> | |
>>> | 부호 비트까지 모두 비트 오른쪽 시프트 | -> | |
7 | < | 관계 연산자(보다 작은) | -> |
<= | 관계 연산자(보다 작거나 같은) | -> | |
> | 관계 연산자(보다 큰) | -> | |
>= | 관계 연산자(보다 크거나 같은) | -> | |
instanceof | 인스턴스의 실제 타입 반환 | -> | |
8 | == | 관계 연산자(와 같은) | -> |
!= | 관계 연산자(와 같지 않은) | -> | |
9 | & | 비트 AND 연산자 | -> |
10 | ^ | 비트 XOR 연산자 | -> |
11 | | | 비트 OR 연산자 | -> |
12 | && | 논리 AND 연산자 | -> |
13 | || | 논리 OR 연산자 | -> |
14 | ? : | 삼항 조건 연산자 | <- |
15 | = | 대입 연산자 및 복합 대입 연산자 (=, +=, -=, *=, /=, %=, <<=, >>=, >>>=, &=, ^=, |=) |
<- |
'Backend Web > Java' 카테고리의 다른 글
[JAVA] 배열 (0) | 2022.02.01 |
---|---|
[JAVA] 조건문 (0) | 2022.01.31 |
[Java] for문과 stream (0) | 2022.01.28 |
[JAVA] 람다 (0) | 2021.11.21 |
[JAVA] 변수 (0) | 2021.11.21 |