객체지향프로그래밍 클래스, 객체, 메소드 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr
예제 1. 필드만있는클래스 텔레비젼 2
예제 1. 필드만있는클래스 3
예제 2. 여러개의객체생성하기 4
5
예제 3. 메소드가추가된클래스 public class Television { int channel; // 채널번호 int volume; // 볼륨 boolean onoff; // 전원상태 void print() { System.out.println(" 채널은 " + channel + " 이고볼륨은 " + volume + " 입니다."); 6
예제 3. 메소드가추가된클래스 public class TelevisionTest { public static void main(string[] args) { Television mytv = new Television(); mytv.channel = 7; mytv.volume = 10; mytv.onoff = true; mytv.print(); Television yourtv = new Television(); yourtv.channel = 9; yourtv.volume = 12; yourtv.onoff = true; yourtv.print(); 채널은 7 이고볼륨은 10 입니다. 채널은 9 이고볼륨은 12 입니다. 7
예제 4. 메소드의반환값 public class Television { int channel; // 채널번호 int volume; // 볼륨 boolean onoff; // 전원상태 void print() { System.out.println(" 채널은 " + channel + " 이고볼륨은 " + volume + " 입니다."); int getchannel() { return channel; 8
예제 4. 메소드의반환값 public class TelevisionTest { public static void main(string[] args) { Television mytv = new Television(); mytv.channel = 7; mytv.volume = 9; mytv.onoff = true; int ch = mytv.getchannel(); System.out.println(" 현재채널은 " + ch + " 입니다."); 현재채널은 7 입니다. 9
예제 5. 인수와매개변수 public class Math { int add(int x, int y) { return x + y; public class MathTest { public static void main(string[] args) { int sum; Math obj = new Math(); sum = obj.add(2, 3); System.out.println("2 와 3 의합은 " + sum); sum = obj.add(7, 8); System.out.println("7 와 8 의합은 " + sum); 2 와 3 의합은 5 7 와 8 의합은 15 10
예제 6. 인수와매개변수 2 public class Television { int channel; // 채널번호 int volume; // 볼륨 boolean onoff; // 전원상태 void print() { System.out.println(" 채널은 " + channel + " 이고볼륨은 " + volume + " 입니다."); int getchannel() { return channel; void setchannel(int ch) { channel = ch; 11
예제 6. 인수와매개변수 2 public class TelevisionTest { public static void main(string[] args) { Television mytv = new Television(); mytv.setchannel(11); int ch = mytv.getchannel(); System.out.println(" 현재채널은 " + ch + " 입니다."); 현재채널은 11 입니다. 12
예제 7. 자동차클래스작성 13
예제 7. 자동차클래스작성 public class Car { String color; // 색상 int speed; // 속도 int gear; // 기어 @Override public String tostring() { return "Car [color=" + color + ", speed=" + speed + ", gear=" + gear + "]"; void changegear(int g) { gear = g; void speedup() { speed = speed + 10; void speeddown() { speed = speed - 10; 14
예제 7. 자동차클래스작성 public class CarTest { public static void main(string[] args) { Car mycar = new Car(); mycar.changegear(1); mycar.speedup(); System.out.println(myCar); Car [color=null, speed=10, gear=1] 15
예제 8. 메소드오버로딩 public class MyMath { // 정수값을제곱하는메소드 int square(int i) { return i * i; // 실수값을제곱하는메소드 double square(double i) { return i * i; 16
예제 8. 메소드오버로딩 public class MyMathTest { public static void main(string args[]) { MyMath obj = new MyMath(); System.out.println(obj.square(10)); System.out.println(obj.square(3.14)); 100 9.8596 17
예제 9. String 클래스 public class StringTest { public static void main (String[] args) { String proverb = "A barking dog"; // new 연산자생략 String s1, s2, s3, s4; // 참조변수로서메소드에서반환된참조값을받는다. System.out.println (" 문자열의길이 =" + proverb.length()); s1 = proverb.concat (" never Bites!"); // 문자열결합 s2 = proverb.replace ('B', 'b'); // 문자교환 s3 = proverb.substring (2, 5); // 부분문자열추출 s4 = proverb.touppercase(); // 대문자로변환 System.out.println(s1); System.out.println(s2); System.out.println(s3); System.out.println(s4); 문자열의길이 =13 A barking dog never Bites! A barking dog bar A BARKING DOG 18
예제 10. 문자열 숫자형 문자열을기초자료형으로변환하려면각랩퍼클래스의 parsexxx() 메소드 를사용한다. int i = Integer.parseInt("123"); // 변수 i 에정수 123 이저장된다. double d = Double.parseDouble("3.141592"); // 변수 d 에실수 3.141592 가저장된다. 19
예제 11. 웹주소확인 사용자에게문자열을받아서문자열이 www 로시작하는지를검사하는프 로그램을작성해보자. 사용자가 quit 를입력하면프로그램을종료한다. 문자열을입력하세요 > www.google.com www.google.com 은 'www' 로시작합니다. 문자열을입력하세요 > naver.com naver.com 은 'www' 로시작하지않습니다. 문자열을입력하세요 > quit 20
예제 11. 웹주소확인 import java.util.scanner; public class StringTest { public static void main(string a[]) { String str; Scanner sc = new Scanner(System.in); while (true) { System.out.print(" 문자열을입력하세요 > "); str = sc.next(); if (str.equals("quit") == true) break; if (str.matches("^www\\.(.+)")) { System.out.println(str + " 은 'www' 로시작합니다."); else { System.out.println(str + " 은 'www' 로시작하지않습니다."); 21