| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- Spring Boot
- 주석
- MySQL
- 안드로이드
- 스타일선택자
- yum
- cat
- chown
- 리눅스 네트워크
- Spring Boot port 변경
- 포트중복 오류
- mysql 기본관리 db 생성
- 포트중복
- Spring Boot version
- mysql 기본관리 db
- 스타일 선택자
- ls
- 안드로이드 어플
- 리눅스 패키지
- linux mysql
- 실행시 문자
- mysql 패키지
- 리눅스 사용자
- 리눅스 디렉토리
- 리눅스 사용자 제한
- 리눅스 소유권 변경
- Linux
- port 중복
- 리눅스
- 리눅스 소유권
- Today
- Total
Central-IT의 프로그래밍 이야기
Java 생성자 실습 1 본문
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 |