- [ 참고/개발환경 및 오류 ]인텔리제이 Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.02023-08-07 08:50:04Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0 에러는 아니고 단지 빌드될 때 deprecated된 기능들이 gradle하고 호환이 안된다고 알려주는 기능. 버전을 맞춰주던지 아니면 옵션을 줘서 끄거나 빌드툴을 인텔리제이로 셋팅해주면 해결 나는 빌드툴을 인텔리제이로 변경했고 더 이상 저 메세지도 안 떴다! 빌드툴을 인텔리제이로 설정하면 빌드 속도도 빨라짐
- [ 정리/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. 오버로..
- [ 정리/Spring ][Spring] 스프링 입문 1) Spring 프로젝트 생성2023-08-04 15:38:33스프링 입문 - 스프링 부트 웹 MVC, DB 접근 기술 1. 프로젝트 생성 https://start.spring.io/ 스프링 부트 3.x 버전부턴 자바 17 이상을 사용 2. IntelliJ 프로젝트 열기 open → hello-spring 폴더 → bulid.gradle 선택 → Open as Project 실행이 안돼서 열심히 서치 해본 결과! 프로젝트와 인테리제이 자바 버전이 달라서 문제라 간단하게 설정해 주니 해결됐다. 1. bulid.gradle 파일 java 확인 spring boot 3.0 이상은 17 이상을 써야 된다!! 2. Gradle JVM 설정 Build, Execution, Deployment → Gradle → Gradle JVM 17로 변경 3. project, module..
- [ 정리/Java ]자바의 정석 70~72강 상속, 클래스 간의 관계, 상속과 포함, 단일 상속, Object 클래스2023-08-04 14:09:53ch 7-1~2 상속 기존의 클래스로 새로운 클래스를 작성(코드의 재사용) 두 클래스를 부모와 자식으로 관게를 맺어주는 것 자손은 조상의 모든 멤버를 상속받는다(생성자, 초기화블럭 제외) 자손의 멤버 개수는 조상보다 적을 수 없다(같거나 많음) 자손의 변경은 조상에 영향을 미치지 않음 class 부모 { int age; } class 자식 extends 부모 { void play() { System.out.println("paly"); } } ch 7-3~4 클래스 간의 관계, 상속과 포함 1. 포함 관계 composite 클래스의 멤버로 참조변수 선언 작은 단위의 클래스를 만들고 조합하여 클래스 만듦 class Point { int x; int y; } // point를 포함하고 있음 // c.r, c..
- [ 정리/Java ]자바의 정석 65~69강 static&인스턴스 메서드, 오버로딩, 생성자, this(), 변수 초기화2023-08-04 04:31:22ch 6-26~29 static 메서드와 인스턴스 메서드 https://youtu.be/Fl4TzjPKAMU 인스턴스 변수 사용여부가 인스턴스/static 메서드 차이 1. 인스턴스 메서드 인스턴스 생성 후 참조변수.메서드이름() 으로 호출 인스턴스 멤버와 관련된 작업을 하는 메서드 메서드 내에서 인스턴스 변수 사용가능 2. static 메서드(클래스 메서드) 객체 생성 없이 클래스이름.메서드이름() 으로 호출 Math.random(), Math.round() 인스턴스 멤버와 관련 없는 작업을 하는 메서드 메서드 내에서 인스턴스 변수 사용 불가 class MyMath { // 인스턴스 변수 iv long a, b; // 인스턴스 메서드 // iv 사용 매개변수가 없음 long add() { return ..