java 221101

John·2022년 11월 1일
0

java

목록 보기
6/20

패키지와 패스

동일 이름의 클래스 파일을 같은위치에 둘수 없고,
인슽턴스 생성방법에서 두 클래스에 차이가 없을때,
패키지의 선언이 필요하다

package a; //패키지 라고 선언한것으로 실제 패키지가 생긴다

com.wxfx.smart.Circle c1 = new com.wcfx.smart.Circle(3.5)

패키지이름은 모두 소문자, 도메인 명의 역순으로 이름을 구성하고 ,
클래스를 정의한 팀의 이름을 추가한다.

객체지향의 특징

객체지향언어가 무엇인가?

OOP(객체지향)의 특징
클래스 추상화
정보은닉 상속 다형성 캡슐화

class Circle {
   double rad = 0;      // 원의 반지름
   final double PI = 3.14;
   public Circle(double r) {
      setRad(r);
   }
   public void setRad(double r) {
      if(r < 0) { 
          rad = 0;
          return; 
      }
      rad = r;
   }
   public double getArea() {
      return (rad * rad) * PI;
   }

이 상황에서 아래와같이 직접 값을 대입할때

public static void main(String args[]) {
   Circle c = new Circle(1.5);
   System.out.println(c.getArea());
      c.setRad(2.5);
   System.out.println(c.getArea());
   c.setRad(-3.3);
   System.out.println(c.getArea());
   c.rad = -4.5;    // 컴파일 오류 발생 안함
   System.out.println(c.getArea());
}
~~~

이와같이 외부에서 다이렉트로
rad 에 직접 대입해도 오류가 발생하지않아 큰 문제가 될수있다.
이를 막기위해
문법을 도입해 컴파일 에러를 일으킨다

그 과정이...

정보은닉

  • public 어디서든 인스턴스 생성이 가능
  • default 동일 패키지 내 클래으세어만 인스턴스 허용
  • privite 자기 클래스 내에서만 가능하다. 같은 패키지 내에서도 불가능
    아무것도 안붙이면 디폴트다
  1. 변수 앞에는 prive을 넣는다
  2. 하나의 파일에서 public class 는 하나만 만든다
    • 같은 파일에 두개의 public class 를 만들 수 없다
    • 가장먼저 실행되야 할 것을 퍼블릭 메인에 둔다

캡슐화

최종소비자가 가장 쉽고 간편하게
최대한의 퍼포먼스를 얻을 수 있게 하는것

캡슐화 == 프로그램을 잘짜는 것

최소한의 로직으로 사용할수 있게하는것

함수 하나만 호출하면 잘 사용할수 있게 하는것

profile
hello there

0개의 댓글