11일차

개발개발/자바 2013. 9. 10. 17:23

11일차(문제풀이,상속의 개요및
                        오버라이딩개요,생성자호출방법)
============================
 
  j0909

=>1)추상화->2)캡슐화->3)다형성->배열

과제>문자열을 입력받아서->대->소,소->대
 ConvertTest2.java
1.문자열을 입력? aabG===>for(;;),while(true)
                        AABg
   문자열을 입력?=>문자열의 내용을  비교해주는 메서드?
   ...
  E or e을 입력->System.exit(0);//프로그램 종료
                       adab123Ggg
     =>숫자는 입력하면 안됩니다.->강제종료(return)
          =>isXXXX =>문자인지,숫자인지를 체크해주는
                               메서드를 찾기
 
  ->Character클래스->isDigit('2')->true
                                 isDigit('a')->false
  ->
isSpace(char ch) ==>공백이 있는지를 체크?

 "aba dga"   ->'a  '
Deprecated.  --->앞으로 이메서드 사용하지
                          마세요
Replaced by isWhitespace(char).

 

2.Repeat.java로 저장
===============
<실행 결과>
1.반복할 문자를 입력? a=>nextLine()->String
 "a"->charAt(0)='a'
===========================

2.반복할 횟수를 입력? 3
       ->nextInt().
   aaa
 =>caller,worker=>문자,횟수->매개변수
     ->메서드작성
========================
  StringTest.java=>중요메서드를 정리
========================
문자열을 입력?
agGAdgag
s.concat('test')=agGAdgagtest
s.replace('a','c')=cgGAdgcg
s.endsWith('gag')true
s.length()=8
s.indexOf('G')=2
s.trim()=agGAdgag
===>substring(첫번째인덱스번호)
         =>첫번째인덱스번호부터 끝까지 문자열을
         =>뽑아낼때 사용
    0123
  "abcd" ->substring(2)="cd"
-->substring(첫번째인덱스번호,두번째인덱스번호)
     =>첫번째인덱스번호는 포함하고
          두번째인덱스번호 앞번호까지 포함
   "abcd"->substring(2,3)="c"

s.substring(2)=GAdgag
s.substring(2,5)=GAd

=>상속의 개요->상속의 오버라이딩의 개요
========================
=>상속=>재산(돈,부동산)=>소유권이전
=>자바의 상속=>멤버변수,메서드

추상화,캡슐화,다형성,상속성

상속=>개발시간이 단축
===>전에 개발한 내용을 다시 한번 반복해서
                                     사용
 =>회원로그인(회원가입),방명록,게시판,
      파일업로드,다운로드,
========================
 =>다음번 사이트개발->재활용
========================
=>회사에 입사->전산->부서에 배치=>급여

  사원에 대한정보->class Employee
=======================
  팀장에 대한 정보=>class Manager
                             public class Company (main())
  =================
 
class A=>1000 라인 ,
    class B=>중복되는 700라인 (복사)
                           +
                   새로운 코딩 300라인
======================1000라인
                   상속기법
                         +300라인

중복된 데이터를 코딩=>재활용->코딩양이줄어듬
                                         ->개발시간이 단축

class 자식클래스 extends 부모클래스
       (=서브클래스)         (=슈퍼(Super)클래스)
===========================

1.상속배제
   private 멤버변수->멤버변수명앞에 private붙어
                             있어서 상속불가
   private 메서드명->상속불가->자기 클래스내부
                                             에서만 사용
   생성자=>접근권한자와 무관하게 상속이 안된다.
    public Employee(){}

2.상속->단일상속(하나의 부모클래스), 만 지원
           =>인터페이스(다중상속을 흉내)
=======================
            다중상속(동시에 부모클래스 2개로부터,,,)

   class Child extends Father,Mother
                                (sub(),   sub())
   =>프로그램이 복잡->지원불가(C++은 지원가능)

 메서드의 호출유형

1.정적(main())->일반메서드->객체명.일반메서드()
2.정적->정적메서드->클래스명.정적메서드
                           ->정적메서드
3.생성자->생성자->this(),this(1),,,,
=======================
4.일반메서드->일반메서드=>객체명.일반메서드명()
                                        객체명을 생략
                                        this.일반메서드명();
                                      
 =>상속기법을 사용할려면
  class 자식클래스명 extends 부모클래스명

==========================
   부모,자식사이에 is a관계가 성립이 되는것만
   extends예약어를 사용=>상속

ex) p->q=>p이면 q이다(참)
                  q이면 p이다(참 또는 거짓이 나오면)
                                    거짓
             p                         q
class Manager extends Employee
=>팀장은 그회사의 직원이다.(참)
     직원은 그회사의 팀장이다.(거짓)

    class 무선전화기 extends 전화기(일반,보편)
             (특별)
    class 노트북 extends 컴퓨터

관리자의 정보
이름=박길수
부서명=영업부
보너스=4500.0
부하직원수=3
=========
이름=홍길동
나이=25
=========
직원의 이름=홍길동
나이=25
성별=남
주소=서울시 강남구
급여=1500
=========
이름=이길수
나이=32
=========
직원의 이름=이길수
나이=32
성별=남
주소=서울시 강북구
급여=1700
=========
이름=이기자
나이=28
=========
직원의 이름=이기자
나이=28
성별=여
주소=대전시 중구
급여=2000

class NotebookComp extends Computer
   //Owner,
  //calculate(){~}

   this.calculate();

=>상속은 누적제==>기능이 많아진다.(메서드)
06)oop4대-상속-super.ppt->1일차(javapp)
  =>owner(Computer),battery(NotebookComp)

상속의 개요,
오버라이딩=>부모로부터 물려받은 메서드가
                   자식클래스에 맞지않을때 자식클래스에
                   맞게 내용을 수정하는 기능
(Overridding)==>ex) 파일 덮어쓰기
============================
상속과 생성자와의 관계=>캡슐화(private,public)
                                           protected,default
                                    추상클래스,인터페이스

1.자바에서는 클래스를 새로 작성하면
   무조건 java.lang.Object클래스를 상속을 받게
   되어있다.

2.상속을 받은 상태(부모,자식관계)에서
   자식클래스의 객체를 생성->부모클래스의 생성자를
    호출==>나중에 자식클래스의 생성자가 호출
    (=>상속과 생성자와의 관계)
   =>생성자 호출 매카니즘


   ==>InheriTest.java
Father객체생성
난 Father기본생성자호출
f=j0909.Father@2a163765

child객체생성

난 Father기본생성자호출
난 Child기본생성자호출
c=j0909.Child@4b6e3f87

this->현재 생성된 객체를
         가리키는 예약어
      (자식클래스의 객체)

<->super->부모클래스
              객체를 가리키는
              예약어

this()->기본생성자호출
<->super()
  부모클래스의 기본생성자
  호출
============
=>super와super() 예습
=>접근권한자(p387)
 p379,상속과 생성자
 p381 super
=>매개변수가 있는경우
==============
=>추상클래스
==============
과제)OpTest.java로 저장
실행결과)
Scanner

첫번째수 입력? 4 (nextInt)
두번째수 입력?7 (nextInt)
연산자[+,-,*,/]+ //nextLine()
4+7=11
==================

 

 

'개발개발 > 자바' 카테고리의 다른 글

12일차  (0) 2013.09.10
10일차  (0) 2013.09.10
9일차  (0) 2013.09.10
8일차  (0) 2013.09.10
7일차  (0) 2013.09.10
Posted by 공돌공돌
,