ABOUT ME

  • 클래스,메서드정의
    JAVA 2021. 7. 21. 22:34

    메서드(Method)

    class 안에 main메서드, 아니면 함수를 쓰는 메서드 등등.

    "실제 현장에서는

    패키지 단위로 main메서드는 class중에 단 하나에만 놓고 사용한다."

    main메서드는 그 패키지를 실행하는 트리거 같은 역할을 해야하기 때문이다.

    static 영역 = 동적메모리. 언제나 가져올 수 있는 영역(생성자를 굳이 만들지 않고 클래스 자체로도 사용가능)

    사칙연산

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    package chapter4;
     
    public class WhatIsMethod {
     
        // method란
        public static void main(String[] args) {
     
            System.out.println(5 + "+" + 7 + " = " + add(57));
            System.out.println(7 + "-" + 5 + " = " + minus(57));
            System.out.println(7 + "*" + 5 + " = " + times(57));
            System.out.println(10 + "/" + 2 + " = " + divide(210));
        }
     
        // 사칙연산
        static int add(int a, int b)// 매개변수
        {
            return a + b; // 리턴값
    //        리턴값의 변수형을 void외에 것으로 사용 시 꼭 return을 입력해야 함.(지금은 int형)
        }
     
        static int minus(int a, int b) {
            int result = 0;
     
            if (a > b) {
                result = a - b;
            } else {
                result = b - a;
            }
            return result;
        }
     
        static int times(int a, int b) {
            int result = a * b;
     
            return result;
        }
     
        static int divide(double a, double b) {
            int result = 0;
     
            if (a > b) {
                result = (int) (a / b);
            } else {
                result = (int) (b / a);
            }
            return result;
        }
    cs

    override

    같은 이름의 메서드라도 매개변수의 변수형이 다르면 다른 함수로 인식한다.

    즉 같은 이름이라도 변수형이 다르면 사용가능.

    이를 overriding method = 재정의 메서드라고 한다.

    int add 메서드 밑에 double add메서드를 만들어보자.

    int add 의 매개인자 = int a, int b

    double add 의 매개인자 = double a, double b

    1
    2
    3
    4
    5
        // overriding method(재정의 method)
        // 더하기(실수)
        static double add(double a, double b) {
            return a + b;
        }
    cs

    클래스(class)

    멤버변수(member valeable): 클래스의 특성.

    메서드(method): 멤버변수로 메서드를 만들어 사용할 수 있음

    참조자료형 클래스 만들기

    1.인스턴스 변수

    2.생성자

    3.method

    멤버변수를 만들 땐 get,set 메서드를 꼭 만들어 놓아야 한다.( 안 만들면 기본을 모르는 개발자...)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    package chapter4;
     
    //참조자료형 클래스(object)
    public class Book {
    //    1.인스턴스 변수(클래스변수,member valuable)
     
        // static: 생성자로 만들기 전에 이미 저장되있는 변수.
        // 그래서 인스턴스 변수가 아니라 클래스 변수라고 한다.
        static int bookId = 10
        String bookName;
        String bookWriter;
        int bookPrice;
        String bookPublisher;
        String managerId;
     
    //    2.생성자(default 생성자는 자동 생성)
     
        // default 생성자
        Book() {
            System.out.println("나 디폴트 생성자야");
        }
     
        // overriding 된 생성자.
        Book(String bookName, String bookWriter, int bookPrice) {
            this.bookName = bookName;
            this.bookWriter = bookWriter;
            this.bookPrice = bookPrice;
        }
     
    //    3.method
     
        // 정의 method
        public void showBookInfo() {
            System.out.println("책이름: " + bookName);
            System.out.println("저자: " + bookWriter);
            System.out.println("가격: " + bookPrice + "원");
            System.out.println("출판사: " + bookPublisher);
            System.out.println("========================");
        }
     
        // get method: 인스턴스변수의 값 가져오기
        // set method: 인스턴스변수의 값 설정하기
        // '오른쪽 마우스 -> Source -> Generate Getters and Setters' 로 간단히 만들 수 있음
        public static int getBookId() {
            return bookId;
        }
     
        public static void setBookId(int bookId) {
            Book.bookId = bookId;
        }
     
        public String getBookName() {
            return bookName;
        }
     
        public void setBookName(String bookName) {
            this.bookName = bookName;
        }
     
        public String getBookWriter() {
            return bookWriter;
        }
     
        public void setBookWriter(String bookWriter) {
            this.bookWriter = bookWriter;
        }
     
        public int getBookPrice() {
            return bookPrice;
        }
     
        public void setBookPrice(int bookPrice) {
            this.bookPrice = bookPrice;
        }
     
        public String getBookPublisher() {
            return bookPublisher;
        }
     
        public void setBookPublisher(String bookPublisher) {
            this.bookPublisher = bookPublisher;
        }
     
        public String getManagerId() {
            return managerId;
        }
     
        public void setManagerId(String managerId) {
            this.managerId = managerId;
        }
    }
     
    cs

    위의 Book클래스를 이용하는 mainboard만들기

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    package chapter4;
     
    public class BookControl {
     
        public static void main(String[] args) {
            // 인스턴스 생성하기(객체 생성)
     
            Book b1 = new Book();
            b1.bookId = 1;
            b1.bookName = "자바의 정석";
            b1.bookWriter = "남궁성";
            b1.bookPrice = 30000;
            b1.bookPublisher = "도우출판";
            b1.managerId = "0101";
     
            Book b2 = new Book();
            b2.bookId = 2;
            b2.bookName = "처음 읽는 음식의 세계사";
            b2.bookWriter = "미야자키 마사카츠";
            b2.bookPrice = 16000;
     
            Book b3 = new Book();
            b3.bookId = 3;
            b3.bookName = "파이이야기";
            b3.bookWriter = "얀 마텔";
            b3.bookPrice = 10000;
     
            b1.showBookInfo();
            b2.showBookInfo();
            b3.showBookInfo();
        }
     
    }
     
    cs

    배열복습

    (구구단, 1문에 2가지 방법)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
        // 구구단
        // 3*9의 2차원 배열
        // 1행: 2단 2,4,6,8,......
        // 2행: 3단 3,6,9,12,......
        // 3행: 4단 4,8,12,16,......
        public static void e1() {
            int[][] arr = new int[3][9];
     
            for (int i = 0; i < arr.length; i++) {
                for (int j = 0; j < arr[i].length; j++) {
                    if (i == 0) {
                        arr[i][j] = 2 * (j + 1);
                    } else if (i == 1) {
                        arr[i][j] = 3 * (j + 1);
                    } else if (i == 2) {
                        arr[i][j] = 4 * (j + 1);
                    } else {
                        break;
                    }
                }
            }
     
            for (int i[] : arr) {
                for (int j : i) {
                    System.out.print(j + "\t");
                }
                System.out.println();
            }
        }
     
        // 구구단
        // 3*9의 2차원 배열
        // 1행: 2단 2,4,6,8,......
        // 2행: 3단 3,6,9,12,......
        // 3행: 4단 4,8,12,16,......
        public static void e2() {
            int[][] arr = new int[3][9];
     
            for (int dan = 0; dan < arr.length; dan++) {
                for (int jisu = 0; jisu < arr[dan].length; jisu++) {
                    arr[dan][jisu] = (dan + 2* (jisu + 1);
                    System.out.print(arr[dan][jisu] + "\t");
                }
                System.out.println();
            }
        }
    cs

    'JAVA' 카테고리의 다른 글

    댓글

Designed by Tistory.