일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Java
- array
- JavaScript
- html
- Method
- 파일 입출력
- function
- property
- 코틀린#클래스#상속
- 상속
- Event
- springframework
- File 클래스
- 다형성
- spring
- jsp
- 연산자
- String
- 데이터베이스
- 설치
- css
- list
- javaservlet
- 자바
- 연락처 프로그램
- jQuery
- kotlin #return #jump
- GUI
- 윈도우 #단축키
- 오라클
- Today
- Total
Binary World
JAVA CLASS : 클래스 본문
* 클래스
- 정의 : 만들고자 하는 대상의 상태(속성) 정보들을 멤버 변수로 선언하고, 대상이 가져가야할 기능들을 메소드로 정의하는 새로 만드는 데이터 타입
- 상태(속성, 성질) : 멤버 변수(field, property)
- 기능 : 메소드
- 생성자(constructor) : 멤버 변수들을 초기화, 멤버 변수들의 공간을 확보, 매개변수는 있을 수 있고, 없을 수도 있음.
주의) 생성자를 만들지 않으면, 자동으로 기본 생성자를 만들어줌. 하지만 생성자를 하나라도 정의한 경우에는, 자동으로 기본 생성자를 만들지 않음.
<Java Practice>
1. TV의 기능들을 클래스를 이용하여 생성
* ClassMain01.java (메소드를 호출하여 출력하는 메인 class)
import java.util.Scanner; public class ClassMain01 { public static void main(String[] args) { // 클래스의 "객체"를 "생성"한다. // 클래스이름 변수이름 = new 생성자(); BasicTv tv = new BasicTv();
// 기본 생성자를 호출해서 객체를 생성하게 되면 // 클래스의 멤버 변수들은 기본값으로 초기화됨 // 숫자(int, double, ...) 타입의 기본값: 0 // boolean 타입의 기본값 : false // 그 외 타입값 : null
tv.displayInfo();
// TV의 기능 사용 // => BasicTv 클래스가 가지고 있는 메소드를 호출 // 참조변수이름.메소드이름(매개변수); tv.turnOnOff(); tv.displayInfo(); tv.turnOnOff();
tv.channelUp(); // tv 채널 + 1 tv.volumeUp(); // tv 볼륨 + 1
tv.turnOnOff(); // tv 전원 끔 } // end main() } // end class ClassMain01 |
*BasicTV.java(티비 변수와 기능을 선언한 클래스)
public class BasicTv { // TV가 가져야 할 상태(속성, 성질) => 멤버 변수(필드, 프로퍼티) boolean powerOn; // TV의 전원상태(true:on, false:off) int channel; // TV 채널 정보 int volume; // TV 볼륨 정보
// TV가 가져야 할 기능 => 메소드 // TV를 켜거나 끄는 기능 public void turnOnOff(){ if (powerOn){ powerOn = false; System.out.println("TV가 꺼졌습니다.."); } else{ powerOn = true; System.out.println("TV가 켜졌습니다.."); } } // end turnOnOff()
// 채널 증가 기능 public void channelUp() { channel++; System.out.println("channel up: " + channel); } // end channelUp()
// 채널 감소 기능 public void channelDown() { channel--; System.out.println("channel down: " + channel); } // end channelDown
// 볼륨 증가 기능 public void volumeUp() { volume++; System.out.println("volume up: " + volume); } // end volumeUP
// 볼륨 감소 기능 public void volumeDown(){ volume--; System.out.println("volume down: " + volume); } // end volumeDown
public void displayInfo() { System.out.println("---- TV 현재 상태 ----"); System.out.println("전원: " + powerOn); System.out.println("채널: " + channel); System.out.println("볼륨: " + volume);
} // end displayInfo() } // end class BasicTv |
* 출력화면
---- TV 현재 상태 ---- 전원: false 채널: 0 볼륨: 0 TV가 켜졌습니다.. ---- TV 현재 상태 ---- 전원: true 채널: 0 볼륨: 0 TV가 꺼졌습니다.. channel up: 1 volume up: 1 TV가 켜졌습니다.. |
2. 사각형의 가로세로 및 면적을 출력하는 클래스를 생성
* ClassMain02.java(메소드를 호출하는 메인 클래스)
public class ClassMain02 { public static void main(String[] args) { // 기본 생성자를 사용해서 MyRectangle 클래스의 인스턴스를 생성 MyRectangle rect1 = new MyRectangle(); // 자동으로 멤버변수가 초기화됨 System.out.println("가로: " + rect1.width); System.out.println("세로: " + rect1.height); rect1.width = 3.0; rect1.height = 4.0; System.out.println("면적: " + rect1.calcArea());
System.out.println("==================="); // 매개변수가 있는 생성자를 호출해서 인스턴스 생성 MyRectangle rect2 = new MyRectangle(10.0, 2.0); System.out.println("가로: " + rect2.width); System.out.println("세로: " + rect2.height); System.out.println("면적: " + rect2.calcArea());
} // end main() } // end class ClassMain02 |
* MyRectangle.java(사각형에 대한 변수 및 메소드, 생성자를 생성)
public class MyRectangle { // 멤버 변수 double width; // 직사각형의 가로 double height; // 직사각형의 세로
// 생성자 public MyRectangle() {} // 기본 생성자 public MyRectangle(double w, double h) { width = w; height = h; } // 리턴이 없음
// 메소드 public double calcArea() { return width * height; }
} // end class MyRectangle |
* 출력화면
가로: 0.0 세로: 0.0 면적: 12.0 =================== 가로: 10.0 세로: 2.0 면적: 20.0 |
'개발자의 길 > JAVA' 카테고리의 다른 글
JAVA CLASS : 접근 제한 수식어(private, (package), protected, public) (0) | 2016.12.29 |
---|---|
JAVA CLASS : 클래스 변수, 메소드 사용 (0) | 2016.12.29 |
JAVA CLASS : 연습(배열, 피보나치 수열) (0) | 2016.12.29 |
JAVA CLASS : Method (0) | 2016.12.29 |
JAVA CLASS : 연습(반복문) (0) | 2016.12.29 |