일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 한번에insert하기
- 업캐스팅
- http
- 0으로변환
- java
- 오버라이딩
- static
- java기초
- JPA
- git commit취소
- 메소드
- 생성자
- 스프링시큐리티
- 코린이
- 레포지토리설계
- 파비콘에러
- MySQL
- qclass
- 자바
- 웹스토리지 사용법
- Git
- 상속
- 프로젝트
- 웹동작방식
- 기초
- 다운캐스팅
- 스프링부트
- 네트워크
- 엔티티설계
- 형변환
- Today
- Total
목록java (19)
딱콩이의 봄

✔️상속은 연관 있는 클래스들에 대해 공통적인 구성요소를 정의하고, 이를 대표하는 클래스를 정의하는 것을 의미합니다. ✔️상속 관계는 "is a" 관계를 의미하며 extends 키워드를 이용해 상속 관계를 정의합니다. ✔️상속 관계에서 상속을 받는 클래스를 sub class, derived class, child class, extended class 라 합니다. ✔️상속 관계에서 상속을 제공하는 클래스를 super class, base class, parent class 라 합니다. public class Manager extends Employee { //필드 및 메소드 } ✔️자식클래스는 부모 클래스를 상속받아 부모 클래스의 모든 자원(속성, 메서드)을 사용할 수 있습니다. ✔️자식 클래스는 부모클..

사용자 정의 상수 ✔️정적 필드에 final 키워드를 적용하여 값을 변경할 수 없도록 하는 것으로 사용자 정의 상수를 정의할 수 있습니다. ✔️사용자 정의 상수는 정적 필드나 메서드의 접근과 마찬가지로 클래스 이름을 통해 접근하여 사용합니다. ✔️사용자 정의 상수는 접근제한자의 범위에 따라 공유하는 범위가 결정됩니다. static method ✔️정적 메소드는 static으로 선언된 메서드로써 인스턴스 없이(객체 생성 없이)도 호출할 수 있습니다. 정적 메소드는 인스턴스 필드에는 접근할 수 없고, 정적 필드에만 접근할 수 있습니다. 정적 메소드는 객체를 통해 사용될 수 있지만, 반드시 클래스명과 함께 사용하기 바랍니다. ✔️예시 class Employee { private static int nextId..

✔️static과 final 키워드는 클래스, 필드, 메서드에 모두 적용할 수 있는 키워드이며 각 위치에 따라 다른 의미를 갖습니다. ✔️static, final 키워드가 어느 위치에 있느냐에 따라 그 기능이 다른만큼 정확히 이해하고 사용해야 합니다. 💡final 키워드를 필드에 정의할 경우 초기 한번의 초기화(=값에 대입이 한 번만 이루어진다)만 가능하여 이후에는 다른 값을 대입할 수 없습니다. ✔️final 키워드는 클래스, 필드, 메소드, 지역변수, 파라미터에 적용할 수 있습니다. ✔️클래스에 final 은 상속을 허용하지 않으며 메서드의 final 은 오버 라이딩 금지를 의미합니다. ✔️필드, 지역변수, 파라미터에 final을 적용하면 한번 초기화 한 이후에는 다른 값으로 변경할 수 없습니다. ✔..

✔️Java의 JVM이 관리하는 메모리 공간은 크게 3가지 영역으로 나눌 수 있습니다. 스택 영역(Stack Area): 지역변수(Local Variable), 매개변수(Parameter)가 할당되는 영역으로 초기화가 진행되지 않습니다. 힙 영역(Heap Area): 배열과 모든 인스턴스 객체가 할당되는 영역으로 자동 초기화가 진행됩니다. 스태틱 영역(Static Area) 또는 메서드 영역: 메서드의 바이트 코드, static변수가 할당됩니다. 💡 스택 정적 메모리 할당 함수의 호출과 관계되는 지역변수와 매개 변수가 저장되는 영역 함수의 호출과 함께 할당되며, 함수의 호출이 완료되면 소멸 푸시(push)동작으로 데이터를 저장하고, 팝(pop) 동작으로 데이터를 인출 후입 선출(LIFO, Last-in-..

✔️하나의 클래스에 정의된 다수의 생성자 간에 this()생성자를 통해 호출이 가능합니다. ✔️this() 생성자는 중복되는 코드를 제거하고 생성자를 재사용하기 위해 사용합니다. public class Employee { private String id; private String name; private String department; public Employee(){ } public Employee(String id) { this.id = id; System.out.println("Employee(id) 호출"); } public Employee(String id, String name) { this(id); this.name = name; System.out.println("Employee(id,..

✔️클래스 필드의 초기화는 다양한 방식으로 이루어질 수 있으며 이를 위해 다양한 형태의 생성자를 정의할 수 있습니다. ✔️생성자의 이름은 반드시 클래스의 이름과 동일해야 하기 때문에 다수의 생성자 정의는 생성자 오버로딩으로 정의합니다. ✔️생성자 오버로딩은 해당 클래스를 구성하는 생성자들의 매개변수 개수와 타입, 순서를 달리하여 정의합니다. ✔️객체의 인스턴스화 과정에서 생성자를 호출하며 이때 파라미터를 다르게 하여 필요한 생성자를 호출합니다. 예시1 class Animal { String name; void setName(String name) { this.name = name; } } class Dog extends Animal { void sleep() { System.out.println(this..

✔️매개 변수가 없고 구현 내용 없이 정의하는 생성자를 기본 생성자 혹은 디폴트 생성자 라고 합니다. ✔️클래스는 반드시 하나 이상의 생성자를 가지며 사용자가 생성자를 정의하지 않으면 디폴트 생성자가 자동으로 생성됩니다. but, 사용자가 작성한 생성자가 하나라도 구현되어 있다면 컴파일러는 디폴트 생성자를 추가하지 않습니다. ✔️생성자에서 명시적으로 필드의 값을 설정하지 않으면 디폴트 값으로 초기화 됩니다. 디폴트 초기값 : 숫자 타입(0), 논리 타입(false), 참조 타입(null) class Dog extends Animal { Dog() { //디폴트 생성자 } void sleep () { System.out.println(this.name + "zzz"); 🧐Reference https://y..

✔️생성자는 클래스 구성요소 중 하나로, 객체를 인스턴스화 할 때 가장 먼저 호출됩니다. ✔️생성자의 역할은 객체가 갖는 필드의 초기화이며 따라서 모든 클래스는 하나 이상의 생성자를 갖습니다. 생성자의 규칙 ✔️클래스명과 메서드명이 동일합니다. ✔️리턴타입을 정의하지 않습니다.(void도 사용하지 않음) class HousDog extends Dog { HouseDog(String name) { //생성자 this.setName(name); } 💡생성자는 객체가 생성될 때 호출됩니다. 즉, 생성자는 다음과 같이 new 키워드가 사용될 때 호출됩니다. new 클래스명(입력인수 , ...) 생성자는 메소드와 마찬가지로 다양한 입력을 받을 수 있습니다. HouseDog 클래스에 만든 생성자는 다음과 같이 입력..