abstract class Person
{
         private String name ; // 이름
         private int age ; // 나이
        
         public Person()
        {
               
        }
        
         public Person(String n , int a)
        {
                this.name = n ;
                this.age = a ;
        }
        
         public String getName()
        {
                return name ;
        }
        
         public void setName(String name )
        {
                this.name = name ;
        }
        
         public int getAge()
        {
                return age ;
        }
        
         public void setAge(int age)
        {
                this.age = age ;
        }
        
         // 잠자기
         public void sleep()
        {
                System. out.println(this .getName() + "이(가) 잠자기를 시작함.");
        }
        
         // 말하기 (추상메소드 적용)
         public abstract void speek();
}

class Student extends Person
{
         public Student()
        {
               
        }
        
         public Student(String n , int a)
        {
                super(n , a );
        }
        
         // 말하기 (추상메소드 적용)
         @Override
         public void speek()
        {
                System. out.println(this .getName() + "이(가) 말하기를 시작함.");
        }
        
         // 공부하기
         public void study()
        {
                System. out.println(this .getName() + "이(가) 공부를 시작함.");
        }

        
}

class StudentWorker extends Student
{
         public StudentWorker()
        {
               
        }
        
         public StudentWorker(String n , int a)
        {
                super(n , a );
                /*setName(n);
               setAge(a);*/
        }
        
         // 공부하기 @오버라이딩
         @Override
         public void study()
        {
                System. out.println("매우 바쁜 " + this.getName() + "이(가) 공부를 시작함." );
        }
        
         // 일하기
         public void work()
        {
                System. out.println(this .getName() + "이(가) 일하기를 시작함.");
        }
}

public class Exam02
{
         public static void main(String [] agrs)
        {
                // Person의 instance (Setter를 통해 필드값 설정)
                /*Person cgs = new Person();
               cgs.setName("최규식"); // 사람의 이름 설정
               cgs.setAge(20); // 사람의 나이 설정                  
               System.out.println(" cgs의 이름 : " + cgs.getName()); // 사람의 이름 출력
               System.out.println(" cgs의 나이 : " + cgs.getAge() + "세"); // 사람의 나이 출력                  
               cgs.speek(); // 말하기 메소드 실행 */         
               
                // Person의 instance (생성자를 통해 필드값 설정)
                /*Person steve = new Person("Steve Jobs", 60); // 생성자를 통해서 멤버변수 초기화  
               System.out.println(" steve의 이름 : " + steve.getName()); // 사람의 이름 출력
               System.out.println(" steve의 나이 : " + steve.getAge() + "세"); // 사람의 나이 출력
*/            
                // -------------------------------------------------------------------------------------
               
                // Student의 instance (Setter를 통해 필드값 설정)
                Student student_cgs = new Student ();
                student_cgs.setName("학생 최규식" ); // 이름 설정
                student_cgs.setAge(20); // 나이 설정               
                System. out.println("student_cgs의 이름 : " + student_cgs.getName()); // 학생의 이름 출력
                System. out.println("student_cgs의 나이 : " + student_cgs.getAge()); // 학생의 나이 출력
                student_cgs.study(); // 공부하기 메소드 실행
                student_cgs.speek(); // 말하기 메소드 실행
               
                // -------------------------------------------------------------------------------------
               
                // StudentWorker의 instance (Setter를 통해 필드값 설정)
                StudentWorker studentWorker_cgs = new StudentWorker();
                studentWorker_cgs.setName("고학생 최규식" );
                studentWorker_cgs.setAge(22);             
                System. out.println("studentWorker_cgs의 이름 : " + studentWorker_cgs.getName()); // 고학생의 이름 출력
                System. out.println("studentWorker_cgs의 이름 : " + studentWorker_cgs.getAge()); // 고학생의 나이 출력
                studentWorker_cgs.work();
                studentWorker_cgs.study(); // 공부하기 (@오버라이딩) 메소드 실행
               
                // StudentWorker의 instance (생성자를 통해 필드값 설정)
                StudentWorker studentWorker_steve = new StudentWorker("고학생 스티브잡스" , 25);        // 생성자를 통해서 멤버변수 초기화     
                System. out.println("studentWorker_steve의 이름 : " + studentWorker_steve.getName()); // 고학생의 이름 출력
                System. out.println("studentWorker_steve의 이름 : " + studentWorker_steve.getAge()); // 고학생의 나이 출력
                studentWorker_steve.work();
               
        }
}

 

 class Person

{
         private String name ; // 이름
         private int age ; // 나이
        
         // 이름을 초기화하는 생성자
         public Person(String name )
        {
                this.name = name ;
        }
        
         // 이름, 나이를 모두 초기화하는 생성자 -> 생성자 오버로딩
         public Person(String name , int age)
        {
                this.name = name ;
                this.age = age ;
        }
        
         // 이름을 구한다.
         public String getName()
        {
                return this .name ;
        }
        
         // 이름을 변경한다.
         public void setName(String name )
        {
                this.name = name ;
        }
        
         // 나이를 구한다.
         public int getAge()
        {
                return this .age ;
        }
               
         // 나이를 변경한다.
         public void setAge(int age)
        {
                this.age = age ;
        }
}

public class Exam01
{
        
         // static은 메모리에 미리 준비해서 사용 가능하도록 한다.
         public static void main(String args[])
        {
                // 최규식 생성
                Person choi; // 레퍼런스 선언
                choi = new Person( "최규식", 20); // 인스턴스 생성
                // (=) Person choi = new Person();

                // choi.age = 20;
               
                System. out.println(choi .getName());
                System. out.println(choi .getAge());
               
                // 2015년이 되어 MIT 공대로 편입
                choi.setName( "Choi Kyu-Sik");
                choi.setAge(21);
               
                System. out.println("\n" );
                System. out.println(choi .getName());
                System. out.println(choi .getAge());
        }
        
}

고백을 망설이시나요?.JPG


유머

Written by 긍지높은취객 on 2014. 12. 8. 22:37