JAVA 33

[JAVA] 상속

상속 (Inheritance) 상위클래스를 상속받아서 하위클래스를 정의하는 방법 class 하위클래스 extends 상위클래스 자바 에선 오로지 '하나의 부모'로부터 상속받을수 있습니다 (단일 상속) 다중 상속 허용하지 않음 (용어) Super Class(상위 클래스), Parent Class(부모/조상 클래스), Basic Class(기본 클래스) Sub Class(하위 클래스), Child Class(자식 클래스), Derived Class(유도 클래스) ※ 상속받는다..(동사) inherit , subclass sub class에서는 super class가 가지고 있는 멤버 변수들은 선언하지 않아도 사용할 수 있다. super class에 없는 멤버 변수만 선언해 주면 됨 상속의 이점 : 상속을 통..

JAVA 2022.02.09

[JAVA] 접근제한자, final, static

접근권한 수식어(Access Modifier) 접근제한자 1) 종류: private, (default), protected, public 2) 기능 - 멤버 변수, 멤버메소드에 대한 접근 권한을 제한 3) private: '자기자신'이 선언된 클래스에서만 사용 가능 4) (default): '자기자신' + '같은 패키지'에 있는 클래스들에서는사용 가능 5) protected: '자기자신' + '같은 패키지' + '상속받은 클래스' 에서 사용 가능 다른 패키지의 클래스라도 '상속 받으면' 사용 가능하다 6) public: 어디서든 사용이 가능 사용범위: private < (default) < protected < public ※ 클래스에 붙는 접근제한자는 딱 두가지 입니다 (default) , public..

JAVA 2022.02.09

[JAVA] 클래스

클래스 정의 및 사용 우리가 만든 클래스를 사용하려면, 그 클래스의 '인스턴스(실체 instance)'를 생성해야 함. 구문 클래스이름 변수이름 = new 생성자(); 생성자(): 클래스의 이름과 동일, 클래스의 멤버변수들을 초기화 new 로 생성하는 instance 들은 지역변수와는 달리 인스턴스가 생성될 때 (자동으로) 초기화가 된다. 특별히 초기화를 할 값들이 지정되어 있지 않을 때는 각 변수 타입의 기본값(디폴트 값)으로 초기화가 됨 boolean -> false, 숫자타입(int, double, ...) -> 0 String, 참조 타입(클래스) -> null 지역변수: 메소드 안에서 선언된 변수 지역변수는 사용하기 전에 반드시 초기화를 해줘야 함. 클래스: 우리가 만들고자 하는 대상의 '상태'..

JAVA 2022.02.08

[JAVA] 메소드

메소드 (Method): 반복되는 코드, 내용, 재사용해야할 코드들을 한 뭉치로 묶어서 따로 메소드로 만들은 다음(정의) 이를 필요할때마다 사용(호출)한다. ※ 자바는 '함수(function)' 가 따로 없습니다 메소드 정의: 메소드는 main 메소드 바깥에서!!, class 안에서 정의!! 메소드 정의구문: 수식어 리턴타입 메소드이름 (매개변수, ...) { 메소드 본체(body) } modifier return_type method_name(parameter, ...) { ... } 수식어(modifier) : public, static, private, ... (생략 가능) 매개변수 (parameter) : 메소드 호출시 넘겨주는 값. 리턴타입 (return type) : 메소드 종료후 호출한 쪽에..

JAVA 2022.02.08

[JAVA] 파일 입출력

파일 입출력(Java application 관점) Writer(출력) BufferedWriter : 버퍼를 사용한 출력 클래스 FileWriter : 전달한 경로의 파일을 출력하기 위한 목적으로 열어준다. 전달한 경로에 파일이 없을 때에는 만들어서 열어준다. File : 전달한 경로에 있는 파일의 정보를 담는 타입 하위 경로 생성, 파일 존재 여부, 파일 삭제 등의 기능을 할 수 있다. Reader(입력) BufferedReader : 버퍼를 사용한 입력 클래스 FileReader : 전달한 경로의 파일을 출력하기 위한 목적으로 열어준다. 전달한 경로에 파일이 없을 때에는 오류 File : 전달한 경로에 있는 파일의 정보를 담는 타입 하위 경로 생성, 파일 존재 여부, 파일 삭제 등의 기능을 할 수 있다.

JAVA 2021.11.21

[JAVA] 쓰레드

프로그램 실행이 안된 상태 프로세스 실행된 프로그램 운영체제로부터 시스템 자원을 할당받는 작업의 단위 JAVA는 운영체제가 바로 실행시켜주지 않고 JVM에 의해 실행되기 때문에 JVM으로부터 시스템 자원을 할당받는다. 쓰레드 프로세스의 처리 경로 단일 쓰레드 - 처리 경로를 한 개만 가지고 있기 때문에 직렬적이다. - 동시에 많은 양을 처리하기 힘들기 때문에 상대적으로 비효율적이다. - 하지만 하나의 작업에 문제가 발생하더라도 다른 작업에는 영향을 끼치지 않는다. - 따라서 안정성이 보장된다. - 설계도 멀티 쓰레드에 비해 쉽다. 멀티 쓰레드 - 하나의 프로세스를 동시에 처리하는 것처럼 보이지만 사실은 매우 짧은 단위로 분할해서 차례로 처리한다. - 여러 개의 처리 경로를 가질 수 있도록 하며, 동시 작..

JAVA 2021.11.21

[JAVA] HashSet, HashMap

Set : 집합 - 구현 클래스 HashSet - 집합에서는 중복되는 원소를 포함할 수 없다. - 저장된 값들은 인덱스가 없기 때문에 순서가 없다. - 값의 유무 검사에 특화되어 있는 자료구조이다. - 해시 코드로 유무 검사가 진행되고 속도가 상대적으로 좋다. - 순서 부여 : iterator() 순서가 없는 객체에 순서를 부여하거나, 순서가 있어도 iterator방식의 순서로 변경하고자 할 때 사용한다. hasNext()를 통해 다음 값이 있는 지 검사하고, next()를 사용하여 값을 가져온다. Map - 구현 클래스 HashMap (서버 간 데이터 교환) - Key와 Value 한 쌍으로 저장되며, 검색의 목적을 가지고 있다. - Key는 중복된 값을 넣으면 Value가 최근 값으로 수정되고 중복되..

JAVA 2021.11.21

[JAVA] 컬렉션 프레임워크 - ArrayList

알고리즘 어떤 문제가 발생되었을 때 해결할 수 있는 절차 혹은 순서 자료구조 의미 없는 데이터를 하나의 정보로 만들어주는 알고리즘들의 집합, 수집한 자료를 저장하는 방법 컬렉션 프레임워크(Collection Framework) : 자료구조 1. List extends Collection - 구현 클래스 Vector : 보안성 강화, 처리량 감소, 용량 관리 LinkedList : FILO으로 인해 넣을 때는 빨라도 뺄 때에는 느리다. ArrayList : 인덱스로 데이터를 관리한다. 배열과 ArrayList의 차이 배열은 길이에 제한을 두어야 할 때 자주 사용되고, ArrayList는 몇 개의 데이터가 들어올 지 알 수 없을 때 사용한다. ArrayList는 컬렉션 구현 클래스 중 실무에서 가장 많이 사..

JAVA 2021.11.20

[JAVA] Object 클래스, Wrapper 클래스

Object 클래스(최상위 부모 클래스) 1. toString() 항상 객체명을 출력할 때에는 toString()이 생략되어 있다. toString()을 통해 출력되는 문자열이 마음에 들지 않는다면, 재정의하여 수정하도록 한다. 2. equals() : 주소값 비교(==) ※ String 클래스에서 값을 비교하도록 재정의 되었다. 3. hashCode() : 해당 객체의 주소값 ※ String 클래스에서 상수값의 주소를 리턴하도록 재정의 되었다. --------------------------------------------------------------------------------- Wrapper Class : 기본 자료형들의 클래스 타입 클래스타입 객체 = new 클래스타입(일반 타입); //b..

JAVA 2021.11.20