- [ 공부/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 ..
- [ 공부/Java ]자바의 정석 61~64강 return문, 반환값, 호출스택, 기본형매개변수, 참조형 매개변수, 참조형 반환타입2023-08-03 15:35:08ch 6-20~21 return문 반환값 1. return문 실행 중인 메서드를 종료하고 호출한 곳으로 되돌아감 반환타입이 void면 생략 가능(컴파일러가 자동으로 추가해 줌) 반환타입이 void가 아니면 반드시 필요, 참/거짓일 때 모두 return값이 있어야 함 // 참일 때만 return문 실행되므로 에러 발생 int max(int a, int b){ if(a > b) return a; } 2. 반환값 반환타입과 반환값은 일치하거나 자동형변환 가능한 타입이어야 함(int일 경우 char, byte, short) ch 6-22 호출스택 1. 스택 밑이 막힌 상자처럼 위에 차곡차곡 쌓이고 꺼낼 땐 위부터 꺼내짐 2. 호출 스택 call stack 메서드 수행에 필요한 메모리가 제공되는 공간 호출되면 호..
- [ 공부/Java ]자바의 정석 56~60강 클래스의 정의, 변수 종류, 클래스/인스턴스 변수, 메서드2023-07-30 17:49:48ch 6-9~10 클래스 정의 1. 클래스 설계도 데이터+함수 사용자 정의타입 변수 : 하나의 데이터를 저장할 수 있는 공간 배열 : 같은 종류의 데이터를 묶어서 저장할 수 있는 공간 구조체 : 서로 연관된 데이터(다른 종류)를 묶어서 저장할 수 있는 공간 클래스 : 데이터와 함수의 결합(구조체 + 함수) 2. 사용자 정의타입 원하는 타입을 직접 만들 수 있음 // 시간이라는 데이터를 다루기 위한 변수 int hour; int minute; int second; // 여러 시간을 다룰때 배열을 사용하게 된다면? int[] hour = new int[3]; int[] minute = new int[3]; int[] second = new int[3]; // 시분초 데이터를 사용하기 위해선 배열을 다뤄 시분..