Central-IT의 프로그래밍 이야기

Java 생성자 실습 1 본문

Java

Java 생성자 실습 1

Central-It 2015. 2. 25. 12:25
반응형

Java를 이용해 프로그래밍을 하다보면 객체를 생성할 때마다 필수적으로 초기화를 해줘야하는 값들이 생긴다.

객체를 여러개 생성한다면 초기화해주어야 하는 값들도 기하급수적으로 증가할 것이다.

그렇다면 중복되는 코드가 증가하게 되고 프로그램의 효율이 떨어질것이 분명하다.

자바는 이러한 단점을 보완하기위해 생성자라는 것을 제공한다.

생성자의 사용은 간단하다. 반환형이나 접근제한자 없이 클래스의 명과 동일한 이름으로 선언만 해주면 된다.

생성자의 실행은 해당 클래스를 생성된 직후에 실행된다.

즉 new 연산자를 사용할 시에 실행된다고 생각하면된다.

아래는 생성자 사용의 예이다.


# Student 클래스

// 멤버변수

    // 학번     정수형  hakbun

    // 이름     문자열  name

    // 국어점수 정수형  kor

    // 영어점수 정수형  eng

    // 수학점수 정수형  math


// 메소드

    // 총점 구하는 메소드  sum() return int 총점

    // 평균 구하는 메소드  avg() return double 평균


public class Student

{

    String name;

    int hakbun, kor, eng, math;

 

    Student()    //기본 생성자의 사용

    {

        System.out.println("기본 생성자 호출");

    }


    Student(int hakbun, String name, int kor, int eng, int math)    //생성자의 사용, 파라미터 또한 가져올수 있다.

    {

        System.out.println("생성자 호출");                       //생성자가 실행된다면 콘솔에 "생성자 호출"이 출력될 것이다.

        this.hakbun = hakbun;                                  //this 연산자는 현재 자신을 의미한다. 그러므로 this.hakbun은

        this.name = name;                                    //Student 클래스의 멤버변수인 hakbun을 의미한다.

        this.kor = kor;                                          //파라미터로 들어오는 hakbun과는 다르다는 것을 명심하자.

        this.eng = eng;

        this.math = math;

    }

    

    int sum()

    {

        return this.kor + this.eng + this.math;

    }

    

    double avg()

    {

        return sum()/3;

    }

}


# Test2 클래스

public class Test2

{

    public static void main(String[] args)

    {

        // 학번: 1, 이름:홍길동, 국어:100, 영어:85, 수학:90

        // 학번: 2, 이름:이몽룡, 국어:95,  영어:80, 수학:85

        

        // 출력형식:  "홍길동 총점: xxx"

        //             "홍길동 평균: xxx"


        Student st1 = new Student(1, "홍길동", 100, 85, 90);    //new 연산자를 사용하여 객체의 생성과 동시에 멤버변수들을

        System.out.println(st1.name+ " 총점 : " +st1.sum());    //초기화 시켜준다.

        System.out.println(st1.name+ " 평균 : " +st1.avg());

        

        Student st2 = new Student(2, "이몽룡", 95, 80, 85);

        System.out.println(st2.name+ " 총점 : " +st2.sum());

        System.out.println(st2.name+ " 평균 : " +st2.avg());

    }

}


# 코드실행화면


위의 사진을 보면 "생성자 호출"이 먼저 출력되는 것을 볼수 있다.

생성자는 new연산자와 동시에 호출이된다.

생성자를 정의하는데 주의해야 할 점은 반드시 메소드보다는 먼저 정의되어야 한다는 것이다.

이점을 반드시 유념하도록 하자.


반응형

'Java' 카테고리의 다른 글

Java와 Eclipse 설치와 설정  (0) 2015.03.03
Java class 생성, 접근 실습  (0) 2015.02.23
함수와 switch문을 이용한 계산기  (0) 2015.02.23
Java 피보나치 수열  (0) 2015.02.23
Comments