본문 바로가기

개인적으로 공부한 것을 정리해 놓은 블로그입니다 틀린 것이 있으면 댓글 부탁 드립니다!


반응형

JAVA

(23)
JAVA 스터디 14 - 인터페이스 인터페이스란? 자식 클래스가 여러 부모 클래스를 상속받을 수 있다면 , 다양한 동작을 수행할 수 있다는 장점을 가지게 될 것이다. 하지만 클래스를 이용하여 다중 상속을 할 경우 메소드 출처의 모호성 등 여러 가지 문제가 발생할 수 있어 자바에서는 클래스를 통한 다중 상속을 지원하지 않는다. 하지만 다중 상속의 이점을 버릴 수는 없기에 자바에서는 인터페이스라는 것을 통해 상속을 지원하고 있다. 인터페이스란 다른 클래스를 작성할 때 기본이 되는 틀을 제공하며 , 다른 클래스 사이의 중간 매개 역할까지 담당하는 일종의 추상 클래스를 의미한다. 자바에서 추상 클래스는 추상 메소드 뿐만 아니라 생성자 , 필드 , 일반 메소드도 포함할 수 있다 . 하지만 인터페이스는 오로지 추상 메소드와 상수만을 포함할 수 있다 ..
JAVA 스터디 13 - 접근제어자 제어자 (Modifier) 제어자란 클래스와 클래스 멤버의 선언 시 사용하여 부가적인 의미를 부여하는 키워드를 의미한다. 자발에서 제어자는 접근 제어자 와 기타 제어자로 구분 할 수 있다 . 기타 제어자는 경우에 따라 여러 개를 함께 사용할 수도 있지만 , 접근 제어자를 두 개 이상 같이 사용할 수는 없다. 이러한 접근 제어자와 기타 제어자는 조합에 따라 함께 사용할 수 있다. 접근 제어자 (access modifier) 객체 지향에서 정보 은닉(data hiding)이란 사용자가 굳이 알 필요가 없는 정보는 사용자로 부터 숨겨야 한다는 개념이다. 그렇게 함으로써 사용자는 언제나 최소한의 정보만으로 프로그램을 손쉽게 사용할 수 있게 된다 . 자바에서는 이러한 정보 은닉을 위해 접근 제어자라는 기능을 제공..
JAVA 스터디 12 - 패키지 1.package 키워드 자바에서 패키지란 클래스와 인터페이스의 집합을 의미한다 . 서로 관련이 있는 클래스나 인터페이스를 함께 묶음으로써 파일을 효율적으로 관리할 수 있게 된다. 또한 ,협업 시 서로 작업한 클래스 사이에서 발생할 수 있는 이름 충돌 문제까지도 패키지를 이용하면 피할 수 있다. 자바에서 패키지는 물리적으로 하나의 디렉터리를 의미한다. 따라서 하나의 패키지에 속한 클래스나 인터페이스 파일은 모두 해당 패키지 이름의 디렉터리에 포함되어 있다. 이러한 패키지는 다른 패키지를 포함할 수 있으며 , 이때 디렉터리의 계층구조는 점으로 구분된다. java.lang.String
JAVA 스터디 11 - Object 클래스 Object 클래스에 대하여 -java.lang 패키지 java.lang 패키지는 자바에서 가장 기본적인 동작을 수행하는 클래스들의 집합이다 . 따라서 자바에서는 java.lang 패키지 클래스들은 import 문을 사용하지 않아도 클래스 이름만으로 바로 사용할 수 있도록 하고 있다. -java.lang.Object 클래스 java.lang 패키지 중에서도 가장 많이 사용되는 클래스는 바로 Object 클래스이다. Object 클래스는 모든 자바 클래스의 최고 조상 클래스가 된다. 따라서 자바의 모든 클래스는 Object 클래스의 모든 메소드를 바로 사용할 수 있다 . Object 클래스는 필드를 가지지 않으며 , 총 11개의 메소드만으로 구성되어 있다. 1.toString( ) 메서드 toString(..
JAVA 스터디 10 - final final class Animal{ } class Dog extends Animal{ //Dog는 final class인 Animal을 상속할 수 없다. } final final 키워드는 보통 상수를 선언하기 위해 사용되자민 , 클래스 메서드 변수에 선언하면 조금씩 할 수있는 것들이 제안된다. 자바에서 final 키워드는 여러 컨텍스트에서 단 한 번만 할당될 수 있는 entity를 정의할 때 사용된다. final 키워드는 3가지에 적용할 수 있다 . 1.final 변수 (원시 타입 , 객체 타입 , 클래스 필드 , 메서드 인자) 2.final 메서드 3.fianl 클래스 각각 어떻게 사용되는지 알아보자 1.fianl 변수 -원시 타입 변수 로컬 원시 타입 변수에 final을 선언하면 한번 초기화된 변수는..
JAVA 스터디 9 - 추상 클래스와 추상메서드 추상 클래스(abstract class) 추상 메서드(abstract method) 추상메서드란 자식 클래스에서 반드시 오버라이딩 해야만 사용할 수 있는 메소드를 의미한다. 자바에서 추상 메소드를 선언하여 사용하는 목적은 추상 메소드가 포함된 클래스를 상속받는 자식 클래스가 반드시 추상 메소드를 구현하도록 하기 위함이다 . 예를 들면 모듈처럼 중복되는 부분이나 공통적인 부분은 미리 다 만들어진 것을 사용하고 , 이를 받아 사용하는 쪽에서는 자신에게 필요한 부분만을 재정의하여 사용함으로 생산성이 향상되고 배포 등이 쉬워지기 때문이다 . 이러한 추상 메소드는 선언부만이 존재하며 , 구현부는 작성되지 않는다 . 바로 이 작성되어 있지 않은 구현부를 자식 클래스에서 오버라이딩하여 사용하는 것이다 . 추상 메서드..
JAVA 스터디 8 - 상속 자바에서의 상속(inheritance) 1.자바 상속의 특징 상속이란 기존의 클래스에 기능을 추가하거나 재정의하여 새로운 클래스를 정의하는 것을 의미한다. 상속은 캡슐화, 추상화와 더불어 객체 지향 프로그래밍을 구성하는 중요한 특징 중 하나이다 . 상속을 이용하면 기존에 정의되어 있는 클래스의 모든 필드와 메소드를 물려받아 ,새로운 클래스를 생성할 수 있다 . 이때 기존에 정의되어 있던 클래스를 부모 클래스(parent class) 또는 상위클래스 (super class), 기초 클래스 (base class)라고도 한다 . 상속을 통해 새롭게 작성되는 클래스를 자식클래스(child class) 또는 하위 클래스 (sub class), 파생 클래스 (derived class) 라고 한다. 상속의 장점 자바..
JAVA 스터디 7 - 자료구조 LinkedList , Stack , Queue 과제 2. LinkedList를 구현하세요. LinkedList에 대해 공부하세요. 정수를 저장하는 ListNode 클래스를 구현하세요. ListNode add(ListNode head, ListNode nodeToAdd, int position)를 구현하세요. ListNode remove(ListNode head, int positionToRemove)를 구현하세요. boolean contains(ListNode head, ListNode nodeTocheck)를 구현하세요. 과제 3. Stack을 구현하세요. int 배열을 사용해서 정수를 저장하는 Stack을 구현하세요. void push(int data)를 구현하세요. int pop()을 구현하세요. 과제 4. 앞서 만든 ListNode를 사용해서..

반응형