<jsp:useBean id="memMgr" class="hewon.MemberDBMgr" />
와  MemberDBMgr memMgr = new MemberDBMgr();

같은 것을 의미한다

 

Posted by 공돌공돌
,

12일차

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

12일차(super의 개요,생성자호출방법,
                           접근지정자,추상클래스)

과제)OpTest.java로 저장
실행결과)
Scanner클래스

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

next()의 경우
문자를 입력하세요?
fkffkf gggag
s=fkffkf

nextLine()
문자를 입력하세요?
dada ddagag
s=ㅇ아dada ddagag

next()
첫수를 입력?->nextInt()
12
두번째수를 입력?->nextInt()
45
연산자[+,-,*,/]?->next()
+
12+45=57
===============
두번째방법

 입력받은값을 nextLine()으로 입력
 =>적절하게 숫자,소수점형으로 변환->저장

        System.out.println("첫수를 입력?");
        //a=input.nextInt(); 방법1
        a=Integer.parseInt(input.nextLine());//"34"->34
       
        System.out.println("두번째수를 입력?");
        //b=input.nextInt(); 방법1
        b=Integer.parseInt(input.nextLine());
       
        //"+"->'+'
        System.out.println("연산자[+,-,*,/]?");
        String s=input.nextLine();/

"50.3"->50.3
->Double.parseDouble(input.nextLine());
===========================
  j0910->SuperTest.java
   
상속->오버라이딩->파일덮어쓰기
==================
상속과 생성자와의 관계=>생성자 호출매카니즘
=========================
super=>부모클래스의 객체를 가리키는 예약어
            <->this
super()->부모클래스의 기본생성자를 호출
             <->this()->자식클래스의 기본생성자호출
super(1)
super("홍길동")

  A
   |
   B
    |
   C==>A,B의 기능
 
super();
=>생략이 가능
=>기본생성자를
    없으면 만들어서호출

 super(1)
 super("홍길동")

->인수가 있는 부모클래스
의 생성자를 호출할 경우
=>인수에 맞는 생성자가
반드시 부모클래스에
 존재해야 호출이 가능하다
(생략이 불가능)

=>생성자의 기본기능->데이터에 다양한 방법을 값을
                                 저장
 =>부모,자식간의 클래스->객체를 생성=>데이터를
             
==========   
    j0910                                         저장
 Employee.java
 Company.java

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

super.멤버변수=>부모클래스가 가지고있는
                         멤버변수의 값을 불러올때
super.메서드명()=>부모클래스가 가지고있는
                         메서드를 호출하라.
=========================
=>중복된 코드를 줄이는 기법

상속과 접근지정자
=>접근권한=>도표

==============
추상클래스와 인터페이스=>설계(모델2->spring)
==============
 접근권한자=>영업부,관리부,개발부
                =>서로 각각 다른 폴더에 저장된
                    자바프로그램(클래스)=>어떻게
                    연결-->실행
==========================
1.private접근권한자

 j0910
    |
     -private

j0910.jprivate
   class A,   class B(main)
================
두클래스 사이에서
A<---B
  ----->

A클래스에서 B클래스에 접근을 할수없다
=>객체를 생성할 수가 없어서
     접근하고자하는 멤버변수에 데이터를
     저장할수 없거나,,,메서드를 호출불가

private접근권한자

같은 패키지
다른 패키지,상속을 받든 다 접근불가
같은 클래스내부에서만 멤버변수와 메서드를
호출이 가능하다.
========================

default접근권한

1.같은 클래스내부에서는 접근이 가능
2.같은 패키지내부에서는 접근이 가능
=====================
3.다른 패키지내부에서는 접근불가
4.상속을 받은 자식클래스의 객체를
   통해서도 접근이 불가


 j0910.jdefault.packageA
               |
                -A.java,<--- B.java

 j0910.jdefault.packageB
               |
                -C.java(외부패키지),  Sub_A.java(상속)

1.접근하고자하는 자바클래스가 어디에
   있는지 모를때 발생하는 에러메세지
  ->import구문을 줘서 위치

A cannot be to resolved to a type

2.위치는 알고 있지만 접근권한때문에
   접근하지못하는 경우

The Type A is not Visible
======================

protected접근권한

1.같은 클래스내부에서는 접근이 가능
2.같은 패키지내부에서는 접근이 가능
=====================
3.다른 패키지내부에서는 접근불가
4.예외조항)
   상속을 받은 자식클래스의 객체를
   통해서도 접근이 가능하다.(default차이점)
  =>public 권한과 연관이 있기때문

public class A { //일단 외부에서 접근을 하기위해서
                        public class로 작성해야 된다.
 
 protected int i;//멤버변수=>외부에서 접근차단
 protected void protected_method(){
   System.out.println(" protected i="+i);
  }
==========================
  
    j0910.jprotected.packageA
               |
                -A.java,<--- B.java==>default패키지복사
            (protected)

    j0910.jprotected.packageB
               |
                -C.java(외부패키지),  Sub_A.java(상속)
==============================
public 접근권한

전제조건)반드시 public class로 작성을 해야 된다.
 개발시에 작성한 클래스들을 다른 부서에서
 자유롭게 사용하기위해서는 반드시
 public class로 작성하고, 멤버변수,와메서드는
 public권한을 줘야 된다.

public class A {//외부패키지에서 접근이 가능하다
 
 public int i;
 public void public_method(){
   System.out.println(" public i="+i);
  }

같은 클래스내부에서 접근이 가능
같은 패키지내부에서 접근이 가능
상속을 받은 자식클래스내부에서도 접근이 가능
다른 패키지내부에서도 접근이 가능
=========================

  j0910.jpublic.packageA->A.java<--B.java

  j0910.jpublic.packageB->B.java
===========================

  추상클래스와 인터페이스=>예습

 

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

11일차  (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 공돌공돌
,

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 공돌공돌
,