본문 바로가기
반응형

JAVA25

[다형성] 클래스배열 & Casting 이 포스팅에서는 클래스배열과 클래스 형변환(업캐스팅, 다운캐스팅)에 대해 다루었다. 그외 객체지향코딩의 특징을 활용한 예제 2개에 대한 코드가 추가되어있다. 1. 클래스배열 : 객체를 여러개 선언해야 하는 경우 배열 타입으로 한 번에 선언후 사용 가능하다. 1) 클래스 배열 선언 main{ // 방법 1 클래스명 [] 배열명 = new 클래스명 [길이]; 클래스명[0] = new 클래스명(); 클래스명[1] = new 클래스명(); . . . // 방법 2 클래스명 [] 배열명 = { new 클래스명(), new 클래스명(), . . new 클래스명() }; } 2) 클래스 배열 사용 main{ 배열명[index].필드명 배열명[index].메서드명(); } 2. Casting : 클래스 형변환 1) U.. 2022. 1. 1.
[상속] 상속과 Overriding 이번 포스팅에서는 클래스 상속과 재정의, 그에 대한 예제들을 확인해볼 수 있다. 1. 상속 1) 상속의 개념 : 기존에 사용중인 클래스의 필드들을 새로 만든 클래스에 가져와서 자신의 것 처럼 사용할 수 있는 개념이다. 다중상속은 불가능하므로, 한 개의 클래스에서만 상속 받을 수 있다. 2) 선언 방법 class A{ A필드 } class B extends A{ A필드, B필드 } class A : 부모클래스, 상위클래스, 슈퍼클래스, 기반클래스 class B : 자식클래스, 하위클래스, 서브블래스, 파생클래스 main{ B b = new B(); b.A클래스와 B클래스의 필드를 모두 사용 할 수 있다. 부모자식 } 2. Overriding : 재정의, 무시하기, 덮어쓰기 1) super와 super( ).. 2022. 1. 1.
[클래스] 제어자 & 필드의 구분 이번 포스팅에서는 접근권한제어자의 종류와 활용, 필드의 구분(변수의 범위)에 대해 다루었다. 1. 접근권한제어자 1) 종류 default : 프랜들리라고도 한다. 같은 패키지에서 접근 가능하다. public : 다른 패키지에서도 접근이 가능하다. 한 패키지에 여러 클래스를 만드는 경우 메인 클래스에만 public이 붙는다.(다른 클래스에는 default가 붙어있지만 생략되어있다.) protected : 같은 패키지에서 접근 가능하다. private : 해당 클래스(선언된 영역)에서만 접근 가능하며, 개발자들끼리 서로 주의를 줄 목적으로 주로 사용한다. 2) getter&setter : private가 선언된 클래스에서 선언하며, public제어자를 붙여 다른 클래스or다른 패키지에서도 private에 접.. 2022. 1. 1.
[클래스] 객체지향 코딩 & 생성자 이번 포스팅은 객체지향의 개념과 클래스의 선언 및 사용, 생성자 대한 내용에 대해 다루었다. 1. 절차지향과 객체지향 1) 절차지향 : 대표적으로 python, C언어가 있으며, 알고리즘과 자료구조를 만드는데 특화되어있다. (ex. 빵 생산(반죽-발효-굽기-장식-포장)과 같이 이전 로직이 끝나야만 다음 단계가 진행 가능하다.) 2) 객체지향 : Java의 언어지향으로, 만들어진 자료구조를 사용하는데 목적이 있다. 객체지향언어는 아래의 4가지의 특징을 지니고 있다. 추상화 : 설계에 초점이 맞춰져 있다. 틀을 정의해주면 그에 맞춰 다양한 Output을 낼 수 있다.(엡스트랙, 임플리먼트) 캡슐화(2-1 정보은닉) : 용법을 알면 정확히 이용이 가능하다. 타인의 메서드를 가지고 다른걸 만들 수 있다는 의미이.. 2022. 1. 1.
[알고리즘] 퀵정렬 이번 포스팅에서는 퀵정렬 함수를 생성하여 main에서 바로 사용이 가능하도록 코딩하는 방법에 대해 다루어보았다. 1. 이론 과정 : 퀵정렬은 한 번 반복시 피벗이 제자리를 찾는다. [ 4 1 10 2 8 7 9 3 6 5 ] P L H 위의 상황에서 정렬은 시작된다고 가정한다. 1. pivot 피벗,피봇 : [0]에 위치한 값 : 4 2. pivot에 맞지않는 위치를 찾음 [L]의 값 pivot [L]의 값 [H]의 값 [ 4 1 3 2 8 7 9 10 6 5 ] L (교환됨) H *if(L과 H가 교차되면 : cross면) 교환하지않고 종료* 3. pivot [H]의 값 [ 2 1 3 4 8 7 9 10 6 5 ] H L 4. pivot은 본인자리를 찾고, [1 2 3] H L pivot 2 [8 7 .. 2021. 12. 31.
[알고리즘] 버블정렬 & 이진탐색 이번 포스팅에서는 버블정렬과 정렬된 배열을 이용하여 이진탐색하는 법을 정리하였다. 1. 버블정렬 1) 개념 : 버블정렬이란 오름차순의 경우 시작 인덱스부터 종료 인덱스까지 반복하며, 왼쪽의 값보다 오른쪽의 값이 더 크다면 교환 알고리즘을 통해 값을 교환하는 방식이다. 배열의 길이까지 1회 반복하게 되면 무조건 가장 큰 값은 제자리(마지막인덱스)에 위치하게 된다. 즉, 정렬이 완료될때까지 이와같은 인덱스간의 값교환을 반복하는 정렬 방법이다. 2) 구현 for(int i=0;i [그 다음 인덱스의 값] 이라면 교환! 내림차순의 경우 [비교할 인덱스의 값] < [그 다음 인덱스의 값] 이라면 교환이다. 반복문이 종료되면 정렬된 데이터를 확인해볼 수 있다. 3. 이진탐색 1) 개념과 이론 이진탐색은 가장 작은 .. 2021. 12. 31.
반응형