///////
Search

조건문, 클래스, 객체, 메서드

날짜
2022/09/22
태그
자바

if 문

if 문

중괄호에 속한 문장이 하나일 경우 중괄호 생략 가능
if(true or false) { 조건이 true 시 실행되는 영역 }
Plain Text
복사

if-else 문

if(true or false) { 조건이 true 시 실행되는 영역 } else { 조건이 false 시 실행되는 영역 }
Plain Text
복사

if-else 문

if(true or false) { 조건이 true 시 실행되는 영역 } else if (true or false) { 前조건들이 모두 false & 現조건이 true 시 실행되는 영역 } else { 모두 false 시 실행되는 영역 }
Plain Text
복사

Switch 문

public static void main(String[] args) { int n = 1; switch (n) { case 1: System.out.println("1"); case 2: System.out.println("2"); case 3: System.out.println("3"); default: System.out.println("default"); } System.out.println("end"); } //결과 //1 //2 //3 //default //end
Plain Text
복사
걸리면 break 까지
public static void main(String[] args) { int n = 1; switch (n) { case 1: System.out.println("1"); break; case 2: System.out.println("2"); case 3: System.out.println("3"); default: System.out.println("default"); } System.out.println("end"); } //결과 //1 //end
Plain Text
복사

여러개의 switch

public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("달을 입력하시오. >"); int month = scanner.nextInt(); switch (month) { 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("올바른 입력 형식이 아닙니다."); } System.out.println("end"); }
Plain Text
복사

클래스와 객체

클래스

클래스에 대한 이해

클래스는 객체를 찍어내는 틀과 같다.
붕어빵 틀과 붕어빵의 관계

클래스 정의

객체를 정의해놓은 것
사용자 정의 타입
클래스는 속성과 기능을 정의하고 있다.
속성 변수
기능 함수
class Circle { //속성 int radius; String color; //기능 double calArea() { return Math.PI * Math.pow(radius, 2); } }
Plain Text
복사

객체

객체란?

.class 를 메로리로 올린 것

인스턴스화, 객체 생성

Circle circle = new Circle()
Plain Text
복사
Circle : 참조변수의 타입
circle : 참조변수, 참조값 저장
= : 대입 연산자 변수 초기화
new : 객체 생성 메모리(Heap) 할당
Circle() : 생성자 호출
클래스로부터 객체(인스턴스)를 만드는 과정
인스턴스는 참조변수를 통해서만 다룰 수 있으며 참조변수의 타입은 인스턴스의 타입과 일치해야 한다.

메모리

String 객체

String도 엄연한 객체다.

객체 예제

예제1)
static class Student{ String name; long rollno; int age; void printStudent() { System.out.println("학생의 이름: " + name); System.out.println("학생의 학번: " + rollno); System.out.println("학생의 나이: " + age); } } public static void main(String[] args) { Student student = new Student(); student.name = "Kim"; student.rollno = 20180001; student.age = 20; student.printStudent(); }
Plain Text
복사
예제2)
public static void main(String[] args) { String str1 = "Happy"; String str2 = "Birthday"; System.out.println(str1 + " " + str2); printString(str1); printString(str2); } private static void printString(String str) { // 참조형 매개변수 (객체 주소를 주고 받는 것) System.out.println(str); }
Plain Text
복사
참조형 매개변수 : 객체 주소를 주고 받는 것
예제3)
static class Rectangle{ private int width; private int height; public void setWidth(int width) { this.width = width; } public void setHeight(int height) { this.height = height; } public int getArea() { return width*height; } } public static void main(String[] args) { Rectangle rectangle = new Rectangle(); rectangle.setWidth(10); rectangle.setHeight(10); System.out.println(rectangle.getArea()); }
Plain Text
복사
메서드가 호출이 되면 스택영역에서,,

메서드

메서드에 대한 이해

메서드는 입력을 받아서 처리를 하고 결과를 반환하는 가상적인 상자와 같다.

메서드 선언

선언부
반환타입 + 메서드 이름 + 매개변수 선언
구현부
메서드에서 선언된 변수는 모두 지역변수
void 아니라면 반환타입과 일치하는 반환값이 필요
메서드 종료하고 호출부분으로 돌아갈 때는 return
public static void main(String[] args) { double area = circleArea(10); System.out.println("area = " + area); } private static double circleArea(int r) { // 메서드 선언부 return Math.PI * Math.pow(r, 2); }
Plain Text
복사