일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 크롬브라우저
- SQL
- 공부내용정리
- 클래스 #아이디
- 스프링 입문
- 파이썬
- 데이터 수집
- 김영한 #SOLID #객체지향
- 옵셔널태그
- 생성자 #자바 #기록남기기
- Numpy #TIL #넘파이 기초
- 머신러닝 #학습내용정리
- 단축키정리
- 그룹핑
- SafeUpdate
- 에러포스팅
- 커밋
- 개발공부
- MVC #디자인패턴
- 작업 영역
- 웹 크롤링
- COMMIT
- 개발자가 되기 위해 꼭 알아야 하는 IT용어
- C언어 #문자열변환 #정수형변환
- GIT
- 기술블로그
- 스프링부트
- 머신러닝 #회귀 #규제
- fastapi
- 컬럼수정
- Today
- Total
목록Java (17)
데이터 분석가 몽구리
인터페이스 - 다중 구현자바의 다중 상속 지원 X자바는 다중 상속을 지원하지 않는다. 그래서 자바에서 `extens` 상속 대상은 하나만 선택할 수 있다. 자바에서 다중 상속을 지원하지 않는 이유는 다이아몬드 문제가 발생할 수 있기 때문이다.위의 그림과 같이 `AirplaneCar` 입장에서 `move()`를 호출할 때 어떤 부모의 `move()`를 사용해야 할지 애매한 문제가 발생한다. 이러한 문제 때문에 자바에서는 다중 상속을 지원하지 않지만, 그에 반해 다중 구현은 지원하고 있다 .**다중 구현은 허용**다중 상속은 불가하지만 다중 구현은 가능한 이유는 무엇일까? 그 이유는 인터페이스가 순수 추상 메서드로 구현되어 있기 때문이다. `InterfaceA`와 `InterfaceB`모두 `methodC..
final 키워드는 값을 변경할 수 없다. final 키워드는 최초 한번만 값을 할당할 수 있습니다. package final1; public class FinalLocalMain { public static void main(String[] args) { // final 지역 변수 final int data1; data1 = 10; // 최초 한번만 할당 가능 // data1 = 20; // 컴파일 오류 // final 지역 변수2 final int data2 = 10; // data2 = 20; // 컴파일 오류 method(20); } static void method(final int parameter){ // parameter = 20; // 컴파일 오류 } } 상수(Constant) 상수는 변..
자바의 메모리 구조는 메서드 영역, 스택 영역, 힙 영역 3개로 나눌 수 있다. 메서드 영역: 클래스 정보를 보관한다. 이 클래스 정보를 붕어빵 틀이라고 할 수 있다. 스택 영역: 실제 프로그램이 실행되는 영역이다. 메서드를 실행할 때마다 하나씩 쌓인다. 힙 영역: 객체(인스턴스)가 생성되는 영역이다. new 명령어를 사용하면 이 영역을 사용한다. 붕어빵 틀로부터 생성된 붕어빵이 존재하는 공간이다. 참고로 배열도 이 영역에 생성된다. 메서드 영역(Method Area) : 메서드 영역은 프로그램을 실행하는데 필요한 공통 데이터를 관리한다. 이 영역은 프로그램의 모든 영역에서 공유한다. 클래스 정보: 클래스의 실행 코드(바이트 코드), 필드, 메서드와 생성자 코드 등 모든 실행 코드가 존재한다. stati..
캡슐화(Encapsulation)는 데이터와 해당 데이터를 처리하는 메서드를 하나로 묶어서 외부에서의 접근을 제한하는 것을 말한다. 캡슐화를 통해 데이터의 직접적인 변경을 방지하거나 제한할 수 있다. 데이터를 숨겨라 객체에는 속성(데이터)과 기능(메서드)이 있다. 캡슐화에서 가장 필수로 숨겨야 하는 것은 속성(데이터)이다. 객체 내부의 데이터를 외부에서 함부로 접근하게 두면, 클래스 안에서 데이터를 다루는 모든 로직을 무시하고 데이터를 변경할 수 있다. 객체의 데이터는 객체가 제공하는 기능인 메서드를 통해서 접근해야 한다. 기능을 숨겨라 객체의 기능 중에서 외부에서 사용하지 않고 내부에서만 사용하는 기능들이 있다. 이런 기능도 모두 감추는 것이 좋다. 사용자 입장에서 꼭 필요한 기능만 외부에 노출하자. ..
자바는 public,private같은 접근 제어자(access modifier)를 제공한다. 접근 제어자를 사용하면 해당 클래스 외부에서 특정 필드나 메서드에 접근하는 것을 허용하거나 제한할 수 있다. private 접근 제어자는 모든 외부 호출을 막는다. 따라서 private이 붙은 경우 해당 클래스 내부에서만 호출할 수 있다. package access; public class Speaker { private int volume; Speaker(int volume){ this.volume = volume; } } volume 필드는 private으로 설정되어 있기 때문에 외부에서 접근할 수 없다. ** 좋은 프로그램은 무한한 자유도가 아니라 적절한 제한이 있어야 한다. 접근 제어자 종류 private..
컬렉션의 개념 컬렉션(collection)은 배열이 가진 고정 크기의 단점을 극복하기 위해 객체들을 쉽게 삽입, 삭제, 검색할 수 있는 가변 크기의 컨테이너이다. 컬렉션 클래스는 개발자가 바로 사용할 수 있는 것들로서, Vector와 ArrayList는 가변 크기의 배열을 구현합니다. 제네릭의 기본 개념 제네릭(generic)은 모는 종류의 타입을 다룰 수 있도록, 클래스나 메소드를 타입 매개변수를 이용하여 선언하는 기법 제네릭 컬렉션 활용 Vector - vector는 배열을 가변 크기롤 다룰 수 있게 하고, 객체의 삽입, 삭제, 이동이 쉽도록 구성한 컬렉션 클래스이다. 정수만 다루는 벡터를 생성하고 , 활용하는 기본 사례 import java.util.Vector; public class Vector..
오늘은 접근제어자에 대해 학습해보도록 할게요! public class SmartPhone{ String powerButton = "OnOff"; public String sdCardSlot = "SD Card"; private String cpu = "CH"; // 외부에서 사용할 수 없음 } 같은 패키지인지 다른 패키지인지 다른 패키지여도 접근가능 = public 같은 패키지에서만 접근가능 => 접근제어자 X
추상클래스의 특징 스스로는 인스턴스를 만들 수 없음 자식 클래스로 파생되기 위한 클래스 관련된 여러 클래스들의 공통분모를 정의하기 위한 클래스 public abstract class YalcoGroup { protected static final String CREED = "우리의 %S 얄팍하다"; protected final int no; protected final String name; public YalcoGroup(int no, String name){ this.no = no; this.name = name; } public String intro(){ return "%d호 %s점입니다.".formatted(no, name); } public abstract void takeOrder (); }..