if(true or false) {
조건이 true 시 실행되는 영역
}
if(true or false) {
조건이 true 시 실행되는 영역
} else {
조건이 false 시 실행되는 영역
}
// if else를 여러번 사용할 때
if(true or false) {
조건이 true 시 실행되는 영역
} else if (true or false) {
前조건들이 모두 false & 現조건이 true 시 실행되는 영역
} else {
모두 false 시 실행되는 영역
}
switch(변수){
case 값1 :
실행문;
break;
case 값2 :
실행문;
break;
default :
실행문;
break;
}
public static void main(String[] args) {
switch(num) {
case 12 : case 1 : case 2 :
System.out.println("겨울");
break;
case 3 : case 4 : case 5 :
System.out.println("봄");
break;
case 6 : case 7 : case 8 :
System.out.println("여름");
break;
case 9 : case 10 : case 11 :
System.out.println("가을");
break;
default :
System.out.println("다시 입력해주세요");
break;
}
}
절차지향 프로그램은 전체가 유기적으로 연결되있어서 프로그램의 실행속도가 빠르지만 유지보수가 어렵고 순서를 바꾸지 못하기때문에 비효율적이었다객체지향이라는 개념이 등장하며 프로그램을 각각의 사물로 생각하여 하나로 이어진 것이 아닌 서로서로 상호작용이 가능하게 만든다.
객체가 있다 이 아이폰14라는 객체는 스마트폰이라는 틀 안에 존재한다.클래스 안에서 다른 객체인 갤럭시s20, 아이폰12 등등 수많은 객체를 만들 수 있다.public class Circle {
접근지정자 클래스선언 클래스이름
필드
int radius;
String color;
메소드
double calrArea() {
return 3.14 * radius * radius;
}
}
Circle cir = new Circle();
클래스자료형 객체참조변수 = new연산자 클래스();
new연산자를 통해 Heap영역에 데이터를 저장할 공간을 할당받고 객체에게 반환하여준 다음 생성자 클래스()를 호출하게된다.먼저 자바의 메모리 구조에 대해 간단하게 알아보면
자바는 Static, Stack, Heap으로 이루어져있다
가장 바깥부분(필드)부분에 선언된 변수(전역변수)나 정정(static이 붙은) 변수, 클래스가 이 필드에 속한다
기본 자료형(int, double, boolean등)과 지역변수, 메서드 등이 이 필드에 속한다
간단하게 실제 메모리의 영역이다
객체타입의 데이터가 저장된다(String, Intege 등), 배열
실제 데이터를 가지고있는 Heap영역의 참조 값을 Stack영역이 가지고있다
이 참조값을 얻기위해 new연산자는 인스턴스를 생성해 Heap에 배치한 다음 참조값을 Stack에서 받아온다

위처럼 메모리의 구조가 있다
여기서 ‘스마트폰’이라는 클래스를 만들고 그 안에 ‘아이폰14’라는 객체를 만들어보자
이 아이폰14라는 객체를 만들기 위해 클래스에 기본적으로 프로퍼티와 메서드를 넣었다
class smartPhone {
public String color;
public int space;
public void sound() {
System.out.println("띵동");
}
}
public class Phone {
public static void main(String[] args){
smartPhone iphone14 = new smartPhone();
iphone14.color = "mid night";
iphone14.space = 128;
iphone14.sound();
}
}
이렇게 코드를 작성하고실행을 해보자

main인 Phone클래스와 smamrtPhone클래스가 스태틱영역에 들어갔다
smartPhone iphone14 = new smartPhone();에서
smartPhone iphone14가 실행되어 smartPhone객체에 대하나 참조변수 iphone14를 만들었다

이제 new smartPhone()이 실행되어 인스턴스를 하나 만들어서 Heap에 배치한다
그 다음 객체 참조 변수 iphone14를 통해 작성한 값들을 대입한다
iphone14.color = “mid night”;
이렇게 객체 참조 변수 iphone14를 이용해 실제 Heap객체에 접근해 데이터를 할당하고있다
그렇게 데이터를 다 할당이 다 끝나면 마지막줄이 실행된다
iphone14.sound();
메서드가 실행되어 콜솔에 “띵동”이 출력되게 되고
참조가 끝난 Heap에 smartPhone객체는 갈비지컬렉터(GC)에 의해 사라지게 된다