import 키워드 같은 패키지에 속하는 클래 들은 아무런 조건 없이 다른 클래스를 사용할 수 있지만, 다른 패키지에 속하는 클래스를 사용하는 경우 두 가지 방법 중 하나의 방법으로 접근이 가능하다. 패키지와 클래스를 모두 기술 package example; // 현재 패키지는 'example' public class Main{ pkg.Person person = new pkg.Person(); // pkg 패키지의 Person 클래스를 가져왔다. } ☞ 이렇게 하는 경우 패키지 이름이 길어지거나 많은 양의 외부 클래스를 사용해야 할 경우 코드가 길어지고 난잡해 질 수 있다. ☞ 서로 다른 패키지에 동일한 클래스 이름이 존재하고, 두 패키지가 모두 import 되어 있을 경우 자바 컴파일러가 어떤 패키지..
패키지(Package) 자바에서 패키지(package)란 클래스와 인터페이스의 집합을 의미한다. 서로 관련이 있는 클래스와 인터페이스를 함께 묶음으로써 파일을 효율적으로 관리할 수 있게 된다. 자바에서 패키지는 물리적으로 하나의 디렉터리를 의미한다. 따라서, 하나의 패키지에 속한 클래스나 인터페이스 파일은 모두 해당 패키지 이름의 디렉터리에 포함되어 있다. 클래스 이름이 동일해도 패키지가 다르면 다른 클래스로 인식한다. 이러한 패키지는 다른 패키지를 포함 할 수 있으며, 디렉터리의 계층 구조는 점(.)으로 구분된다. package 상위패키지.하위패키지.클래스; // 패키지 선언: package 패키지 이름; 패키지(Package) 이름 규칙 숫자로 시작하거나, '_' 와 '$' 를 제외한 특수 문자 사용..
1. 자바의 상속 이란? 객체 지향 프로그램에서 상속은 현실 세계 처럼 부모가 자식에게 물려주는 의미로 부모 클래스의 멤버나 메소드를 자식의 클래스에게 물려주는 것을 의미한다. 상속을 사용함으로 공통된 특징을 가지는 클래스에서 코드 중복을 줄여주고 부모 클래스의 멤버를 재사용 하면서 자식클래스의 간결함을 유지 시켜준다. 부모 클래스의 수정으로 모든 자식 클래스들의 수정 효과를 가져오기 때문에 유지 보수 시간이 감소한다. 공통적인 기능을 부모 클래스에 추가해주면 상속 받은 여러 개의 자식 클래스에서 사용이 가능하기 때문에 확장성이 용이하다. 클래스간의 계층적 분리를 도와줘 분류, 관리의 이점이 있다. 상속의 특징 자바에서 부모 클래스를 super class라 하고 자식 클래스를 sub class라고 한다...
[클래스 정의하는 법] 1) 클래스 정의 - 클래스 정의는 class라는 키워드를 사용한다. - 클래스가 다른 클래스를 상속하고 있을 경우 extends 키워드를 사용한다. - 만약 클래스가 하나 이상의 인터페이스를 구현 해야하는 경우 implements 키워드를 사용한다. 2) 선언 방법 // 1) 변수명 = new 클래스(); Product p; p = new Product(); // 2) 클래스 변수명 = new 클래스(); Product p = new Product(); 2) 클래스의 구성 멤버 - 필드(field): 객체의 데이터가 저장되는 곳이다. 선언 형태는 변수 선언과 비슷하지만, 변수는 생성자와 메소드 내에서만 사용되고 생성자와 메소드가 실행 종료되면 자동 소멸된다. 하지만 필드는 생성자..
Queue란? - FIFO(First In First Out)의 형태, 먼저 들어온 데이터가 가장 먼저 나가는 구조이다. - 큐는 한 쪽 끝은 front로 지정하여 삭제 연산만 수행 - 다른 한쪽 끝은 rear로 지정하여 삽입 연산만 수행 - Enqueue: 큐 맨 뒤에 데이터 추가 - Dequeue: 큐 맨 앞쪽의 데이터 삭제 Queue 구현 (1) Array // Array 로 queue 구현 하기 public class ArrayQueue { int[] elements; private int front = 0; private int rear = 0; private int size = 2; private int exSize =0; public ArrayQueue(){ elements = new int..
Linked List로 Stack 구현 실습 class ListNode { int data; ListNode next; public ListNode(int data, ListNode next) { this.data = data; this.next = next; } public ListNode(int data) { this.data = data; this.next = null; } ListNode add(ListNode head, ListNode nodeToAdd, int position) { if (head == null) { head = nodeToAdd; } else { ListNode node = head; for (int i = 0; i < position - 1; i++) { node = nod..
Stack 이란? - 상자에 물건을 쌓아 올리 듯이 데이터를 쌓는 자료구조이며, 삽입과 삭제를 리스트의 한쪽(top)에서 만 한다. - LIFO(Last In First Out) 구조 Stack 구현 package study; public class Stack { private int[] elements; private int top = 0; private int size = 2; /** * Stack 생성 * default size =16 */ public Stack(){ elements = new int[size]; } public Stack(int data){ elements = new int[size]; elements[top++] = data; } // push public void push(i..
LinkedList란? - 연결 리스트(LinkedList)는 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식의 자료구조이다. - 데이터를 담고 있는 노드들이 연결되어 있고, 노드의 포인터가 이전 노드와 다음 노드와의 연결을 담당한다. - Node는 LinkedList에 객체를 추가하거나 삭제하면 앞 뒤 링크만 변경되고 나머지 링크는 변경되지 않는다. - 중간에 데이터를 추가하거나 삭제하더라도 전체의 인덱스가 한 칸씩 뒤로 밀리거나 당겨지는 일이 없기 때문에 Array에 비해 데이터의 추가나 삭제가 용이하다. - 인덱스가 없기 때문에 특정 요소에 접근하려면 순차 탐색이 필요하기 때문에 탐색 속도가 떨어진다. 그러므로 탐색 또는 정렬을 자주하는 경우엔 배열을 사용하고, 데이터의 추가/삭제가..
- Total
- Today
- Yesterday
- 운영체제
- 이차 리스트
- 정렬
- CS.
- SW
- 리스트 복사
- 연결리스트활용
- 보험
- CS 스터디
- 완전탐색
- Greedy sort
- https
- 리스트함축
- 파이썬
- 코드업 기초
- It
- 알고리즘
- 데이터베이스
- 자료구조와알고리즘 23강
- 이진탐색
- 프로그래머스
- CS
- 프로세스 주소공간
- 자바
- 리스트2
- 네트워크
- 리스트
- 자료구조
- 프로그래머스강의
- 스터디
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |