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

킹발·2022년 9월 22일
0

Java

목록 보기
3/12
post-thumbnail

if 문

if 문

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

if-else 문

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

if-else 문

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

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

걸리면 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

여러개의 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");
}

클래스와 객체

클래스

클래스에 대한 이해

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

클래스 정의

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

객체

객체란?

  • .class 를 메로리로 올린 것

인스턴스화, 객체 생성

Circle circle = new Circle()
  • 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();
}

예제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);
}
  • 참조형 매개변수 : 객체 주소를 주고 받는 것

예제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());
}
  • 메서드가 호출이 되면 스택영역에서,,

메서드

메서드에 대한 이해

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

메서드 선언

  • 선언부
    • 반환타입 + 메서드 이름 + 매개변수 선언
  • 구현부
    • 메서드에서 선언된 변수는 모두 지역변수
    • 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);
}

0개의 댓글

관련 채용 정보