클래스와 객체(인스턴스)에 대한 개념, Value와 Reference에 대한 개념을 이해하도록.
배열 등도 간단히 다루었음.
class Student {
int grade; // 학년
int class; // 반
int number; // 번호
String name; // 이름
}
class App {
public static void main(String[] args) {
Student sung = new Student(); // 생성자 호출
sung.grade = 4;
sung.class = 1;
sung.number = 3;
sung.name = "M.H Sung";
}
}
Student : 클래스, 붕어빵을 만드는 틀 과도 같음.
sung : Student 클래스를 통해 만들어진 객체.
class Car {
int speed = 0;
int fuel = 0;
void reFuel (int fuel) {
this.fuel += fuel;
}
void acc (int speed) {
this.speed += speed;
}
void brake (int speed) {
this.speed -= speed;
}
}
변수와 메소드가 혼재하는 클래스.
...
public static void main(String[] args) {
Car car = new Car();
car.reFuel(100);
car.acc(50);
car.acc(30);
}
...
차의 연료량 : 100
속도는 50이었다가 30만큼 감속하여 최종적으로 20의 속도가 된다.
상수
final 예약어를 사용해 상수 선언 가능final double PI = 3.14; final int MAX_NUM = 100;
리터럴
char ch = 'A'; int num = 10;
A, 10등의 문자나 숫자를 리터럴 혹은 리터럴 상수라 일컫음
리터럴은 메모리에 쓰여 있다가 변수 메모리에 복사됨
int n = 10;
double dNum = n;
정수형 값 10을 담고 있는 n변수를 double형에 대입
큰 자료형으로의 형 변환은 괜찮지만 작은 자료형으로의 변환은 문제가 될 수 있음. (소수점 잘림, 값 잘림 등)
단항 연산자 :
++num
이항 연산자 :num1 + num2;
삼항 연산자(1 > 2) ? 1 : 0;
대입 연산자 :int age = 28;
부호 연산자 :+, -
산술 연산자 :+, -, *, /, %
증감 연산자 :++, --
관계 연산자 :>, <, >=, <=, ==, !=
논리 연산자 :&&, ||, !
복합 대입 연산자 :+=, -=, *= ...
& (AND) 연산자 : 두 비트 값이 모두 1인 경우에만 1
| (OR) 연산자 : 두 비트 값 중 하나만 1이어도 1
^ (XOR) 연산자 : 같은 값이면 0, 다른 값이면 1
~ (반전) 연산자 : 비트 값을 0은 1로, 1은 0으로
<< 연산자 : 왼쪽으로 비트를 이동하는 연산자
>> 연산자 : 오른쪽으로 비트를 이동하는 연산자
단항 연산자가 제일 높고, 이항, 삼항 순
대입 연산자가 가장 낮음
산술, 관계, 논리, 대입 순으로 우선순위를 갖고 ()가 가장 높음
주어진 조건에 따라 다른 문장을 선택할 수 있도록 프로그래밍하는 것
int age = 10; if (age >= 8) { System.out.println("학교에 다닙니다"); } else if (age >= 14) { System.out.println("중학교에 다닙니다"); } else if (age >= 17){ System.out.println("고등학교에 다닙니다"); } else { System.out.println("20살 이상이거나 잘못 입력했습니다"); }
switch (rank) {
case 1:
color = "Gold";
break;
case 2:
color = "Silver"
break;
case 3:
color = "Bronze"
break;
}
반복되는 일을 처리하기 위해 사용하는 것
while (조건식) {
실행문;
}
1부터 10까지 더하는 while문
... int num = 0; while (num <= 10) { num = num + 1; num++; } ...
do {
실행문;
} while(조건식);
for (초기화식; 조건식; 증감식) {
실행문;
}
for (int i = 0; i < 10; i++) {
for (int j = 0; j < i; j++) {
실행문;
}
}
continue : continue 이후 문장은 수행하지 않고 for의 처음으로 돌아가 증감 수행
break : 더 이상 수행문을 반복하지 않고, 도중에 반복문을 빠져나옴