기본 콘텐츠로 건너뛰기

Part2 객체지향 프로그래밍의 등장(7~9장)

접근 제한자 - public, protected, private, default

public : 모든 외부에서 직접 접근하거나 호출 가능

protected : 현재 클래스와 동일 패키지이거나 다른 패키지이더라도 상속 시에는 접근하거나 호출 가능

private : 현재 클래스의 {} 바깥쪽에서는 절대로 보이지 않습니다.

default : 현재 클래스와 동일한 패키지 내에서만 접근하거나 호출할 수 있습니다.

클래스의 접근 제한 - public 외부에 클래스를 노출 default 현재 패키지 내에서만 사용

인스턴스 변수의 접근 제한 - private 사용 public static 완벽한 상수 표현 protected와 default는 간혹 사용되나 메소드를 이용해서 접근하는 방식으로 주로사용

메소드의 접근 제한 - 4개 다 사용 추상 메소드의 형태로 메소드 만들때는 private선언 불가

static : static이 붙은 변수는 클래스 변수 클래스가 생성될 때 함께 한번 생성 됨, 객체를 사용할 필요가 없음, 객체들이 공유하는 데이터를 사용할 때

static 법칙 - static이 붙은 변수들은 객체들이 다 같이 공유하는 데이터를 의미, static이 붙은 메소드는 객체들의 데이터와 관계없는 완벽하게 공통적인 로직을 정의할 때 사용한다. 따라서 static 메소드에서는 인스턴스 변수나 객체의 멧소드를 사용할 수 없다.



댓글

이 블로그의 인기 게시물

메이븐으로 라이브러리 인식

 간혹 퍼블릭 jar가 아닌 파일이 있는데 그럴때 쓰면 될듯 <dependency> <groupId> SimpleCryptLib </groupId> <artifactId> SimpleCryptLib </artifactId> <version> 1.1.0 </version> <scope> system </scope> <systemPath> ${basedir}/src/main/webapp/WEB-INF/lib/SimpleCryptLib-1.1.0.jar </systemPath> </dependency> version, scope, systemPath는 꼭 작성해야 한다 groupId, artifactId, version은 암거나 해도 되는거 같음 최근(2021.05.04)스프링 부트    < dependency > < groupId > NiceID </ groupId > < artifactId > NiceID </ artifactId > < version > 1.0 </ version > < scope > system </ scope > < systemPath > ${basedir}/src/main/resources/lib/NiceID.jar </ systemPath > </ dependency > 이걸 추가해주는것도 필요할지도..?? < build > < plugins > < plugin > < groupId > org.springframework.boot </ groupId > < artifactId > spring-bo...

mac 맥 맥북 Brew 완전 삭제

맥북에서 Brew 초기화 Brew를 써서 h2를 쓰려고 하는데 brew install h2가 안되서 이리 저리 알아보다가 완전 삭제 후 다시 설치 하니까 되서 그 방법을 남겨놈 1. 터미널에 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall.sh)" 입력후 y랑 뭐 비번.. 2. /usr/local 폴더에서 Homebrew 폴더 삭제 rm -rf Homebrew/ 권한설정으로 잘.....삭제하고 3. 다시 설치 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" 좀 오래걸리니까 기다려야한다는걸 배움... 출처.... https://discourse.brew.sh/t/error-no-formulae-found-in-taps/8331/9