sussa
컴퓨터가 할 일은 컴퓨터가.
sussa
전체 방문자
오늘
어제

블로그 메뉴

    • 분류 전체보기 (58)
      • Language (58)
        • JAVA (58)

    공지사항

    인기 글

    태그

    • Thread
    • java
    • recursion
    • 캡슐화
    • Database
    • inheritance
    • CSS
    • BinarySearchTree
    • 조건문
    • Method
    • DI
    • Class
    • 재귀
    • binaryTree
    • singleton
    • 개발자
    • Stream
    • 다형성
    • 스파르타코딩클럽
    • HTML
    • tree
    • spring
    • Instance
    • 상속
    • Algorithm
    • 자료구조
    • Til
    • 웹개발종합반
    • 최종연산
    • Web

    최근 댓글

    최근 글

    티스토리

    hELLO · Designed By 정상우.
    sussa

    컴퓨터가 할 일은 컴퓨터가.

    Java 생성자(Constructor)- OOP
    Language/JAVA

    Java 생성자(Constructor)- OOP

    2022. 8. 20. 16:59

    💻 생성자

    🎯 목표 :  생성자의 종류와 활용 방법 이해

    📒 Constructor(생성자)

    ❗인스턴스 변수의 초기화

    객체가 생성되면, 클래스 변수와 인스턴스 변수는 자동 기본값으로 초기화된다.

    수의 데이터 타입들은 0 , boolean 은 false, 배열,문자열은 null

    원하는 값으로 인스턴스 변수를 초기화 하려면 일반적인 방식으로 할수 없기 때문에 생성자 메소드를 정의하면서 값을 초기화 할수 있다.

     

    ❗생성자 조건

    📌 생성자의 이름은 클래스의 이름과 같아야한다.

    📌  return 값이 없지만 void를 붙이지 않는다.(생성자는 return 값이 항상 필요없다)

     

    👉 기본(default) 생성자 예제

    • 클래스명 () {} 로 기본 생성자가 구현된다. 
    • 같은 클래스 내에 이미 기본생성자가 있다면 기본생성자는 구현할수 없다.
    class Animal2 {
        Animal2 () { }// default 생성자
        String neme;
        void add (String b, String c) {
               this.neme = b+c;
        }
    }

    인스턴스(객체) a를 생성할때, new 연산자를 사용하여 정의해준다.

    아래 예제에서 new Animal2();는 기본 생성자로서 기본 값을 자동으로 초기화 해주고 있다. 

    class Animal2 {
        String neme;
        void add (String b, String c) {
               this.neme = b+c;
        }
    }
    public class ConstructorStudy2 {
        public static void main(String[] args) {
            Animal2 a = new Animal2();
            String x = "Dog";
            String y = "Brid";
            a.add(x,y);
            System.out.println(a.neme);
        }
    }

    👉 생성자 예제

    • 생성자를 이용하여 원하는 값으로 인스턴스 변수를 초기화 해줄수 있다.
    • 기본 생성자 틀에서 괄호 안에 데이타 타입을 정의해준 매개변수를 받아올수 있다.
    class Animal {
        Animal (String b, String c) {
            this.add(b,c);
        }
        String neme;
        void add (String x, String y) {
            this.neme = x+y;
        }
    }
    public class ConstructorStudy {
        public static void main(String[] args) {
            Animal a = new Animal("Dog","Bird");
            System.out.println(a.neme);
        }
    }
    
    //=====출력값 =====
    // DogBird

    하지만, 생성자 안의 this.add(b,c); 메소드가 없다고 가정한다면 출력값은 default 값(null)이 된다.

    인스턴스 생성 할때 매개변수로서 값을 받아왔다 하더라도 생성자는 기본적으로 return 값이 없고 생성자로 작성된 매개변수의 처리를 구현하지 않았기 때문이다.

    class Animal {
        Animal (String b, String c) {
        }
        String neme;
        void add (String x, String y) {
            this.neme = x+y;
        }
    }
    public class ConstructorStudy {
        public static void main(String[] args) {
            Animal a = new Animal("Dog","Bird");
            System.out.println(a.neme);
        }
    }
    
    //=====출력값 =====
    // null

     

    👉 생성자의 Overloading 예제

    • 생성자는 오버로딩이 존재한다.
    • 메소드 오버로딩과 같이 같은 생성자명으로 다른 기능을 하는 생성자를 만들수 있다.
    • String 타입으로 매개변수를 입력받는 생성자와 int 타입으로 매개변수를 입력받는 생성자를 구현했다.
    class Animal {
        Animal (String b, String c) {
            this.add(b,c);
        }
        Animal (int e, int f) {
            this.sumup(e,f);
        }
        
        String neme;
        void add (String x, String y) {
            this.neme = x+y;
        }
        int sum;
        void sumup (int x2, int y2){
            this.sum = y2+x2;
        }
    }
    public class ConstructorStudy {
        public static void main(String[] args) {
            Animal a = new Animal("Dog","Bird");
            Animal t = new Animal(10,11);
            System.out.println(a.neme);
            System.out.println(t.sum);
        }
    }
    • 코드를 실행하게되면 정상 실행 되는것을 확인할수 있다.
    • 생성자도 Overloading 된다는 것을 확인 할수 있다.

    'Language > JAVA' 카테고리의 다른 글

    Java Initialized(초기화)  (0) 2022.08.20
    Java this(생성자, 참조변수)-OOP  (0) 2022.08.20
    Java 기본형 / 참조형 매개변수  (0) 2022.08.20
    Java Overloading(오버로딩) - OOP  (0) 2022.08.19
    Java Static과 Instance의 관계(OOP)  (0) 2022.08.17
      'Language/JAVA' 카테고리의 다른 글
      • Java Initialized(초기화)
      • Java this(생성자, 참조변수)-OOP
      • Java 기본형 / 참조형 매개변수
      • Java Overloading(오버로딩) - OOP
      sussa
      sussa
      Efforts to take on a challenge

      티스토리툴바