김미썸코딩

11/12 - Java(4) : package, import, 접근 제한 본문

빅데이터 플랫폼 구축을 위한 자바 개발자 양성과정

11/12 - Java(4) : package, import, 접근 제한

김미썸 2020. 11. 12. 18:07
728x90

시험 내용

1. 웹페이지를 구성하는 프로그램 종류

          html(구조)/css(디자인)/javascript(기능)

          JSP : Java를 기반으로 하는 Server Side 스크립트 언어로 이게 있어야

                      정적인 html과 동적으로 생성된 contents를 혼합하여  사용할수 있다.

                      즉 사용자가 입력한 contents에 맞게 동적인 웹 페이지를 생성한다.

2. javascript를 해석하는 엔진 : v8 

         구글에서 만든 오픈소스 자바스크립트 엔진이며 , c++로 만들어졌다.

3. HTML

         <script type = "text/javascipt"></script>

   외부 js     

         <script type = "text/javascrit" src="파일주소"></script>

4. 변수와 상수를 선언하는 법

    var, let, const

5. 함수 선언과 사용

    선언적 함수 

             function dofunc(){ }

    익명함수

             콜백 함수

                       let dofunc1 = function() { }

             => 화살표 함수

                       let dofunc1= () => { }

6. 내장함수

             setTimeout

             setInterval

             eval : 내용을 프로그램적으로 읽어서 실행시킨다.

7. (일차)배열 선언  

             let arr1 = [];

             let arr2 = new Array();

8. 내장 객체의 종류(용도)

             기본 객체 : 자료형과 관련된 객체

             BOM : 브라우저와 연관된 객체

             DOM : html태그(document)와 관련된 객체

 

 

 

복습 & 개념 정리

한개 일때 

                class 선언

                           멤버필드

                                     인스턴스멤버필드

                                     스태틱멤버필드

                           * 초기화 블럭

                                     인스턴스

                                     스태틱

                           메서드

                                     인스턴스메서드

                                     스태틱 메서드

 

                                     * constructor(멤버필드 초기화)

                                     * main

 

                                     * overloading

                                     * this - 자기 참조 / this() - 생성자                                      

 

두개 이상 일때

              has ~ a : 포함(인스턴스)

              is ~ a : 상속

              class 파생클래스 extends 공통클래스

              overriding

              super / super()

              final 클래스명            - 상속거부

              final 메서드명            - 재정의 거부

              final 필드명                - 상수

 

 

OOP 프로그램 4대 특성

              캡슐 ****(오늘)

              상속

                                   추상

                                  다형

 

 


 

 

 

 

 

 

 

 

 

 

 

클래스 - 캡슐화


▷p256 

▷p189 - 객체 지향 프로그래밍의 특징

캡슐화(은닉, data hiding)

접근 제한자를 사용하여 구현한다. 

 

 

 

 

 

1. 접근 제한자

public 모두 접근 가능
protected 자식 클래스가 아닌 다른 패키지에 소속된 클래스에서 접근 불가
default 다른 패키지에 소속된 클래스에서 접근 불가
private 모든 외부 클래스 접근 불가

 

main()메소드를 가지지 않는 대부분의 클래스는 외부 클래스에서 이용할 목적으로 설계된 라이브러리 클래스이다. 

 ( main()메소드 ->  실행담당 )

 

메소드는 public으로 가고, 필드는 private이다.

메소드를 통해서 필드에 접근할 수 있다. 왜? 메소드는 제어문이 있기 때문에 필터링이 된다. 

같은 클래스 내에서의 접근은 무조건 허용이다. ex) 같은 클래스 내의 메소드에서 멤버변수 호출 항상 가능

 

클래스에 적용할 수 있는 접근제한은 public, default 두가지이다.

protected, private은 부분적 제한을 하기 때문에 클래스는 절대 protected, private을 쓰지 않는다. 

 

보통 멤버필드는 엄격하게 private, 메서드는 pulic으로 하는 것이 일반적이다.

 

 

 

 

2. Getter와 Setter 메소드

▷p265

1) setter 메소드 : 필드값 변경set필드이름(첫문자 대문자)

2) getter 메소드 : 필드값 사용get필드이름(첫문자 대문자)

                                                              → 필드 타입이 boolean일 경우엔 get말고, is로 시작하는 것이 좋다.

 

메소드를 타고 가서 필드에 간접접근

 

문제집 예제

 

3. 패키지

▷p248

  • 패키지는 곧 폴더다. 
  • 패키지는 단순히 파일 시스템의 폴더 기능만 하는 것이 아니라 클래스의 일부분이다.
  • 패키지는 클래스를 유일하게 만들어주는 식별자 역할을 한다.
  • 도메인명에서 우리가 알고있는건 www.naver.com인데, 원래는  com.naver.(www...)이다. com이 제일 큰개념이다.
  • 패키지 선언이 없으면 디폴트 패키지로 같은 폴더내에 클래스 파일이 만들어진다.

 

! 주의사항 !

1) 반드시 -d . 을 써서 컴파일 해줘라  안하면 오류는 안나지만 나중에 실행때 불러오지 못하는 오류 발생한다.

2) 패키지로 실행파일을 만들었으면 실행도 패키지로 해야한다. 그 패키지 즉 실행파일 있는 폴더 안에서 실행하면 오류뜬다.

      ex) import exam.com 을 추가하여 만들었으면 실행 코드는 java exam.com.PackEx02가 된다.

3) import.com.mycompany.*   에서 처럼   * 이거 쓰지마라!

 

 

규칙

  • 숫자로 시작해서는 안되고, _, $를 제외한 특수 문자를 사용해선 안된다.
  • java로 시작하는 패키지는 자바 표준 API에서만 사용하므로 사용해서는 안된다.
  • 모두 소문자로 작성하는 것이 관례이다.

 

 

 

3-1. 패키지 선언

▷p249

package 상위패키지.하위패키지;

 

public class ClassName { ... }

 

 

 

 

3-2. 패키지 선언이 포함된 클래스 컴파일

▷p250

패키지 선언이 포함된 클래스를 명령 프롬프트에서 컴파일할 경우, 단순히 javac -encoding utf-8 ClassName.java로 컴파일해서는 컴파일 폴더가 생성되지 않는다.

  • javac -d . -encoding utf-8 ClassName.java 처럼 컴파일을 해야한다.

 

패키지 클래스는 패키지로 호출해야한다. cmd에서 java ClassName으로 호출되지 않는다. 

소스가 있는 디렉토리에서 경로를 입력하여 호출한다.

  • java com.exam.PackEx02    ->  호출 가능
  • C:\Java/com/exam> java PackEx02    ->  호출 불가능

 

 

 

3-3. import문

▷p253

 

 

패키지 컴파일로 클래스파일 만들기 예시

 

패키지 선언 없을 때 현재 폴더에 PackA.class 파일 만듬

 

새로운 폴더 com을 만들고 그 안에 PackB.class 파일 만듬

 

com폴더 안에 exam폴더 안에 PackC.class 파일 만듬

 

 

 

 

 

 

4. 접근 제한자 - import 문 

▷p256

728x90
Comments