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