- [ 공부/Java ]자바의 정석 94~96강 내부클래스, 익명 클래스2023-08-07 06:15:36ch 7-42~44 내부클래스 종류, 특징, 선언 1. 내부클래스 내부 클래스에서 객체 생성 없이 외부클래스의 멤버들을 쉽게 접근 가능 코드의 복잡성 줄일 수 있음(캡슐화) 2. 내부 클래스의 종류와 유효범위scope는 변수와 동일 내부 클래스 특징 인스턴스 클래스 외부 클래스 멤버변수 위치에 선언 인스턴스 멤버처럼 다루어짐 외부클래스 인스턴스 멤버들과 관련된 작업에 사용될 목적으로 선언 static 클래스 외부 클래스 멤버변수 위치에 선언 외부 클래스 static멤버처럼 다루어짐 외부클래스 static멤버, 특히 static 메서드에서 사용될 목적으로 선언 지역 클래스 외부 클래스의 메서드나 초기화 블럭안에 선언 선언된 영역 내부에서만 사용 익명 클래스 클래스의 선언과 객체의 생성을 동시에 하는 이름 ..
- [ 공부/Java ]자바의 정석 89~92강 인터페이스, 인터페이스와 다형성, 장점, 디폴트 메서드, static메서드2023-08-07 04:17:02ch 7-35~37 인터페이스의 선언, 상속, 구현 1. 인터페이스 추상 메서드 집합 구현된 것이 전혀없는 설계도로 모든 멤버가 public interface 이름 { // 변수, iv, cv 불가 상수만 가능 public static final 타입 상수이름 = 값; public abstract 메서드이름(매개변수 목록); } // public static final, public abstract 생략 가능 2. 추상클래스와 인터페이스 차이? 추상 클래스 추상 메서드를 가지고 있는 클래스. 인스턴스 변수, 생성자, 인스턴스 메서드가 있음 상속을 통해 하위 클래스에서 구련하도록 강제하는 클래스 상속을 위한 클래스로 객체 생성 불가 단일 상속만 지원 인터페이스 추상 메서드의 집합. 일반 인스턴스 변수, 생..
- [ 공부/Java ]자바의 정석 86~88강 추상 클래스, 추상 메서드2023-08-07 01:24:13ch 7-31~32 추상 클래스, 추상 메서드 1. 추상클래스 미완성 메서드(추상 메서드)를 갖고 있는 클래스 다른 클래스 작성에 도움을 주기 위한 것으로 인스턴스 생성 불가 상속을 통해 추상 메서드를 완성해야 인스턴스 생성 가능 추상 클래스도 생성자 있어야 함 2. 추상메서드 구현부가 없는 미완성 메서드 필요하지만 자손마다 다르게 구현될 것으로 예상되는 경우 자손에서 구현할 때 하나라도 구현하지 않으면 추상클래스로 간주 abstract class Player { // 추상 클래스 abstract void pay(int pos); abstract void stop(); } // 모두 구현 class AudioPlayer extends Player { void play(int pos) { /* 내용 생략 ..
- [ 참고/Mac ][Mac] 맥북 인텔리제이 생성자, getter/setter 자동 생성 단축키2023-08-06 04:32:49command + n
- [ 참고/Mac ][Mac] 맥북 Operation not permitted 해결2023-08-06 02:46:30gradle 빌드할 때 Operation not permitted 에러 발생 1. 퍼미션 획득 터미널에서 해당 명령어로 권한 부여 chmod +x gradlew 명령어로 권한을 부여했는데도 같은 에러가 발생했다 2. 맥 설정 맥은 보안상 IDE에서 로컬 파일을 접근해서 사용이 불가해 따로 설정 시스템 설정 > 개인정보 보호 및 보안 > 전체 디스크 접근권한 필요한 응용 프로그램에 권한 부여 iTerm은 여기 목록에 없는데 아래 + 버튼으로 추가해줄수 있다
- [ 공부/Java ]자바의 정석 79~강 캡슐화, 다형성, 참조변수 형변환, instanceof 연산자,2023-08-06 00:47:45ch 7-22 캡슐화 1. 캡슐화와 접근 제어자 접근 제어자를 사용하는 이유 - 외부로부터 데이터를 보호하기 위함, 외부에서 직접 접근하는 것을 막고 메서드를 이용 간접 접근을 허용시킴 - 외부에는 불필요한, 내부적으로 사용되는 부분을 감추기 위해서 사용 ch 7-23 다형성 1. 다형성★ 조상 타입 참조 변수로 자손 타입 객체를 다루는 것 Tv t = new SmartTv(); // 타입이 불일치하지만 가능 // 조상 타입 참조변수인 t로 자손 타입 객체 SmartTv를 다룰수 있음 // 반대인 경우 불가능(자손 타입 참조변수로 조상 타입 객체를 다룰수 없음) 조상 타입 참조변수로 자손 객체를 다루면 조상 멤버만 사용가능 ex)Tv 5개 SmartTv 7개면 5개 사용가능 ch 7-24~25 참조변수의..
- [ 공부/Java ]자바의 정석 75~강 패키지, 클래스 패스, import, 제어자, 접근 제어자2023-08-05 20:12:02ch 7-12~14 패키지, 클래스 패스 1. 패키지 서로 관련된 클래스의 묶음 클래스는 *.class 클래스 파일, 패키지는 폴더 클래스는 실제 이름은 패키지를 포함 java.lang.String rt.jar 클래스들을 압축한 파일 2. 패키지 선언 소스파일의 첫 문장으로 한번 선언 같은 소스파일의 클래스들은 모두 같은 패키지에 속함 패키지 선언이 없으면 이름 없는 패키지 default package에 속함 3. 클래스 패스 클래스 파일의 위치를 알려주는 경로 환경변수 classpath로 관리 환경변수에 패키지 루트 등록 필요 ch 7-15~16 import 문, static import 문 1. import 문 컴파일러에게 클래스가 속한 패키지를 알려줌 → 클래스 사용할 때 패키지 이름 생략 가능 j..
- [ 공부/Java ]자바의 정석 73~74강 오버라이딩, 참조변수 super, 생성자 super()2023-08-05 05:47:48ch 7-7~9 오버라이딩 1. 오버라이딩 상속받은 조상의 메서드를 자신에 맞게 변경하는것 선언부 변경불가, 구현부만 변경가능 class Point { int x; int y; String getLocation(){ return "x :" + x + "y :" + y; } } class Point3D extends Point { int z; // 상속받은 getLocation()을 오버라이딩 String getLocation(){ return "x :" + x + "y :" + y + "z: " + z; } } 2. 오버라이딩 조건 선언부가 조상 메서드와 일치(반환타입, 메서드 이름, 매개변수 목록) 접근 제어자를 조상 메서드보다 좁은 범위로 변경 불가 예외는 조상 메서드보다 많이 선언 불가 3. 오버로..