일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- lv1
- html tag
- java
- github
- Codeup
- HashSet
- Python
- @builder
- 코드업
- @AllArgsConstructor
- SQL
- 파이썬
- 상속
- 알고리즘
- HTML
- 부스트코스
- CRUD
- git
- entity
- 프로그래머스
- 부트캠프
- stringbuffer
- @NoArgsConstructor
- 에러
- 깃허브
- DTO
- 캡슐화
- 기본생성자
- 자바
- 브랜치
- Today
- Total
목록Back-end/자바(Java) (14)
잉?
상속(Inheritance) 기존의 클래스에 기능을 추가하거나 재정의하여 새로운 클래스를 정의하는 것을 의미한다. extends와 implements 차이 메서드 또는 변수를 ‘구현’할 것인가 ‘사용’할 것인가에 따라 상속의 형태가 달라진다. extends 부모에서 선언, 정의하고 자식은 메서드, 변수를 그대로 사용 가능하다. 다중상속 불가능 일반 클래스와 abstract 클래스 상속에 사용된다. class가 class를 상속받을 때 사용 interface가 interface를 상속받을 때 사용 implements 부모 객체는 선언만 하고 정의는 자식에서 오버라이딩해서 사용 가능하다. 다중상속 가능 class가 interface를 사용할 때 implements를 쓴다. interface가 class를 사..
캡슐화(Encapsulation) 클래스 안에 서로 연관 있는 속성과 기능들을 하나의 캡슐로 만들어 데이터를 외부로부터 보호하는 것이다. 즉, 클래스의 내부 변수와 메서드를 하나로 패키징 하는 것이다. 정보은닉 캡슐화를 하는 중요한 목적 중 하나이다.(캡슐화 ≠ 정보은닉) 접근제어자를 통해 데이터를 보호하고, 보호된 변수는 getter나 setter 등의 메서드를 통해서만 간접적으로 접근이 가능하도록 하는 것이 캡슐화의 중요한 목적이다. 접근제어자 private < default < protected < public 순으로 많은 접근을 허용한다. private : 해당 클래스 안에서만 접근이 가능하다. default : 접근 제어자를 별도로 설정하지 않는다면 변수나 메서드는 default 접근 제어자가 ..
OOP(객체 지향 프로그래밍) - 객체를 기준으로 코드를 나누어 구현한다. - 자바의 경우 그 구성 부분 단위가 클래스이다. - (클래스는 설계도 / 구현체는 인스턴스) - OOP는 절차지향에 비해 사람의 사고방식과 비슷하다. OOP 대표적인 특징 💡 캡슐화(Encapsulation) 클래스 안에 서로 연관 있는 속성과 기능들을 하나의 캡슐로 만들어 데이터를 외부로부터 보호하는 것이다. 즉, 클래스의 내부 변수와 메서드를 하나로 패키징 하는 것이다. [JAVA] 캡슐화(Encapsulation)와 추상화(Abstraction)에 대해 알아보자 캡슐화(Encapsulation) 클래스 안에 서로 연관있는 속성과 기능들을 하나의 캡슐로 만들어 데이터를 외부로부터 보호하는 것이다. 즉, 클래스의 내부 변수와 ..
오버로딩(Overloading) ? - 한 클래스 내부에서 메서드를 확장하기 위한 개념 - 메서드 이름이 일치하고, 매개변수의 개수 또는 타입이 달라야 한다. public class prac { public static void main(String[] args) { OverloadingPrac op = new OverloadingPrac(); System.out.println(op.eat("사과")); op.eat("사과", "바나나"); } } class OverloadingPrac{ public String eat(String a){ return a + "를(을) 먹다."; } public void eat(String a, String b){ System.out.println(a + "와(과) " ..
알고리즘을 푸는 와중 다차원 배열이 사용할 수밖에 없는 상황이 발생했다. 이제 배열에 좀 익숙해지려 할무렵 다차원이 나와버리기..? 다차원 배열이란 2차원 이상의 배열을 의미한다. (2차, 3차, 4차원) 자바에서는 2차원 배열을 나타내는 타입을 따로 제공하지 않는다. 1차원 배열을 이용하여 2차원 배열을 나타내는 것인데 선언과 생성방법을 알아보자. 선언 방법 선언예 타입[][] 변수이름; int[][] dots; 타입 변수이름[][]; int dots[][]; 타입[] 변수이름[]; intp[] score[]; int[][] dots = new int[4][2]; // 4행 2열의 2차원 배열을 만든다. 1열 2열 1행 [0][0] [1][0] 2행 [0][1] [1][1] 3행 [0][2] [1][2..
키오스크 프로그램을 만들면서 생성자에 의문점을 가지게 되었다. 내가 필요한 메서드를 사용하기 위해서는 그 메서드가 위치한 클래스의 기본생성자를 객체로 만들어서 다 불러오면 되겠구나 싶어 뭣도 모르고 사용했다. 그러다 스택오버플로우 에러도 나고, 코드도 더럽고, 비효율적이다 싶어서 이 생성자가 무엇이고, 어떻게 써야 잘 썼다 소문이 날까 해서 찾아보게 되었다. 생성자란? 자신이 원하는 값으로 변수를 초기화 시킬 수 있는 메서드이다. Car() {...} // 클래스이름(){...} 매개변수가 없는 생성자 Car(int num, String name) {...} // 클래스이름(자료형 매개변수){...} 매개변수가 있는 생성자 기본생성자란? 모든 클래스에는 하나의 생성자가 정의되어야 하는데 우리가 만들지 않..
래퍼클래스(Wrapper Class)란? 기본형 변수를 클래스로 한번 감싼 변수이다. 기본형 변수타입에서 첫 글자를 대문자로 바꾼 것이라 생각하면 쉽다. 박싱 : 기본 타입 → 래퍼클래스 언박싱 : 래퍼클래스 → 기본 타입 기본타입(원시타입) 레퍼클래스(Wrapper Class) byte Byte short Short int Integer long Long float Float double Double char Character boolean Boolean 그렇다면 래퍼 클래스 사용 이유는 뭘까? 클래스로 변수를 관리하면 객체지향의 많은 기능을 사용할 수 있게 된다. ArrayList등과 같은 컬렉션은 기본 타입이 아닌 객체만 저장한다. → List list = new ArrayList(); 문자와 문자..
팀장님이 스켈레톤 코드를 제공해 주면 그에 맞춰 기능을 구현하는 작업을 했다. 기능 구현도 어렵지만 난 뼈대를 작성하는것에 더 어려움을 느낀다. 특히 어떤 변수와 메소드가 필요하고 클래스 간의 흐름이 어떻게 구성되어야 하는지 같은 것들 말이다. 이런 나에게 스켈레톤 코드는 좋은 본보기가 되어준다. 이런 식으로 틀을 잡으면 되겠구나 하는 참고서가 하나 늘은 셈. (야호!) 기능 하나하나 알지 못하는 상태에서 일단 떠듬떠듬 끼워 맞추는 식으로 작성하다 보면 얼렁뚱땅 돌아가긴 돌아가는 코드가 완성된다. 사실 LinkedList 타입으로 클래스를 넣어준다는 게 아직 와닿지는 않는다. 난 여태 list를 활용해 본 적도 없었고 사용한다 해도 String, Integer 같은 객체를 사용했기에... (아 이것도 w..