-
JAVA 생성자란? (인스턴스, 멤버변수, 초기화, 필드)프로그래밍/Java 2019. 9. 24. 08:22반응형
JAVA 생성자 이용방법
- 멤버 변수들(필드)를 만든다
- this를 이용하여 값을 넣는다.
- 넣은 값을 불러들여 사용한다.
- 클래스와 이름이 같아야한다.
안녕하세요. 오늘은 자바의 생성자에 대해 알아보려고 합니다.
생성자는 인스턴스 초기화 메서드라고 정의하는데, 이렇게 정의하는 건 말이 너무 어렵다고
생각합니다. 제가 생각하는 생성자란 값을 넣은 다음 불러서 사용하는 걸 객체화시켜
사용하기 쉽게 한다는 의미라고 생각합니다. 설명이 길어지면 안 되니 코드를 보시죠
package com.java.board; public class BoardBean { //필드 또는 멤버변수들 private String no; private String title; private String content; private String name; //기본 생성자 public BoardBean() {} //인스턴스 초기화 생성자 public BoardBean(String title, String content, String name,String no) { super(); this.title = title; this.content = content; this.name = name; } //getter ,setter public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getNo() { return no; } public void setNo(String no) { this.no = no; } }
제가 만들던 게시판의 생성자 클래스입니다.
먼저 생성자 클래스를 만들어 사용하고 싶을 때는
멤버 변수들(필드)를 만들어야 합니다.
필드
private String no; private String title; private String content; private String name;
위에 보시다시피, 이 부분은 필드라고 칭합니다.
필드는 내가 사용할 객체 클래스 안에 들어갈 값들의 집합이라고 생각하시면 됩니다.
내가 게시판을 만들고 싶은데 들어가야 하는 내용이 '번호, 제목, 내용, 작성자' 등의
값으로 들어갈 것입니다. 이렇게 들어갈 값 하나하나가 멤버 변수라고 합니다.
그런데 이렇게 정의 해 놓으면 사용을 못하겠죠?? 값을 넣고 빼고 할 부분이 필요합니다.
그래야 우리가 자유자재로 값을 초기화하고 내용을 불러들여 사용이 가능합니다.
밑에를 보시죠.
Getter, Setter
public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getNo() { return no; } public void setNo(String no) { this.no = no; }
게터 세터라는 부분입니다. 멤버 변수에 값을 넣는
getter와 멤버 변수의 값을 불러들이는 setter가 있습니다.
이렇게 게터 세터를 이용하여 값을 초기화하거나
불러들이면서 사용하는 것이지요.
그런데 이런 부분만 있으면 사용이 너무 불편합니다.
불러들이는 부분을 보시죠
생성자
//getter, setter만 이용한 경우 BoardBean bb = new BoardBean(); bb.setNo("1"); bb.setTitle("제목1"); bb.setContent("내용1"); bb.setName("작성자"); System.out.println(bb.getNo()); System.out.println(bb.getTitle()); System.out.println(bb.getContent()); System.out.println(bb.getName()); //생성자를 이용한 경우 BoardBean bb1 = new BoardBean("2","제목2","내용2","작성자2"); System.out.println(bb1.getNo()); System.out.println(bb1.getTitle()); System.out.println(bb1.getContent()); System.out.println(bb1.getName());
아 정말 진절 머리 나도록 코드가 길어집니다.
set으로 값을 넣고 get으로 일일이 불러 들어야 합니다
하지만, 내가 만들어야 할 게시판의 내용이 만개 라면??
코드가 산더미처럼 늘어납니다. 그래서 생성자를 사용합니다.
생성자를 이용하면 값을 넣는 것이 참 수월해집니다.
밑에 보는 것이 생성자를 이용하여 값을 넣는 부분입니다.
코드가 한 줄로 줄어들어서 사용이 무척 편합니다.
여기까지가 생성자를 이용하는 방법입니다.
하지만!!!
생성자를 이용하는 이유에 대해 알아봐야 합니다.
저도 처음에 배울 때 생성자가 왜 필요한 거지
그냥 값 넣고 불러주면 되는데,라고 생각했고
별로 필요가 없다고 생각했습니다.
하지만, 우리는 프로그램을 만들 때 값을 일일 해 넣어 주었나요?
웹페이지에서 게시판을 불러들일 때 서버에서 바로바로 입력을 해주었나요?
아닙니다. 데이터 베이스에 그 내용을 저장하고 우리가 그 값을 보고 싶을 때
그 값을 호출해서 보입니다.
밑을 보시죠
데이터 베이스 측면에서 생각해 보면 쉽게 생성자의 용도를 쉽게 이해할 수 있습니다.
데이터 베이스를 한번 보시죠.
no title content name 1 제목1 내용1 작석자1 2 제목2 내용2 작성자2 이렇게 우리가 작성한 내용이 데이터베이스에 들어가 있습니다. 그런데 1번 내용을 보고 싶을 때는 1번 내용을
생성자에 멤버 변수들을 초기화해서 화면에 보여지고, 2번 내용을 보고 싶을 때는 2번내용을 생성자 인스턴스
초기화 해서 보입니다.
데이터베이스 - 생성자 - 화면으로 연결되는 연결고리를 쉽게 만들어주는 것이 생성자의 역할이라고 생각하시면
생성자가 필요한 이유에 대해 조금 이해가 되지 않을까 생각합니다.
반응형'프로그래밍 > Java' 카테고리의 다른 글
[Java] 객체지향언어 입문 (0) 2022.03.16 eclipse font 변경하기 (0) 2022.03.16 java 오버로딩(overloading) (0) 2019.09.23 객체지향언어란? (0) 2019.09.22 Java while문 (0) 2019.09.22