본문 바로가기

Back-End/Java18

객체지향 프로그래밍 Ⅱ 이 글은 남궁성 님의 Java의 정석 책을 바탕으로 정리한 글입니다. 상속 상속: 코드를 재사용하여 적은 양의 코드로 새로운 클래스를 작성하여 코드의 중복을 제거한다 포함: 클래스 멤버로 다른 클래스 타입의 참조변수를 선언한다 1. 생성자와 초기화 블럭은 상속되지 않는다. (멤버만 상속) 2. 단일 상속만 허용한다 (다중 상속 효과: 인터페이스) 3. Object 클래스: 모든 클래스의 조상 상속 관계 '~은 ~이다.(is-a)' : SportsCar는 Car이다 포함 관계 '~은 ~을 가지고 있다.(has-a)' : Empoyee는 Address를 가지고 있다 class TVCR extends TV { // 상속 VCR vcr = new VCR(); // VCR클래스를 포함 } 오버라이딩 조상 클래스로.. 2021. 12. 16.
객체지향 프로그래밍 Ⅰ 이 글은 남궁성 님의 Java의 정석 책을 바탕으로 정리한 글입니다. 클래스와 객체 인스턴스 · 클래스를 통해 생성된 객체 · 참조 변수를 통해서만 다룰 수 있다 둘 이상의 참조 변수가 인스턴스를 가리키는 것은 가능하지만 하나의 참조 변수가 여러 개의 인스턴스를 가리키는 것은 가능하지 않다 클래스 · 필드(field), 메서드(method), 생성자(constructor), 이너 클래스(inner class) → 멤버 public class ExampleClass { int x = 10; //필드: 속성 void printX() {...} //메서드: 기능 ExampleClass {...} //생성자: 클래스의 객체 생성 class ExampleClass2 {...} //이너 클래스 } · new 키워드.. 2021. 12. 2.
배열(array) 이 글은 남궁성 님의 Java의 정석 책을 바탕으로 정리한 글입니다. int[] score = new int[5]; // int형의 기본값인 0으로 초기화 int[] score = new int[] {50, 60, 70, 80, 90}; int[] score = {50, 60, 70, 80, 90}; int[] score; score = new int[] {50, 60, 70, 80, 90}; // score = {50, 60, 70, 80, 90}; 에러 int add(int[] arr) {/* 내용 생략 */} int result = add(new int[] {100, 90, 80, 70, 60}); // int result = add({100, 90, 80, 70, 60}); 에러 // 참조변수의 .. 2021. 11. 25.
연산자(Operator) 이 글은 남궁성 님의 Java의 정석 책을 바탕으로 정리한 글입니다. 우선 순위: 산술(사칙 연산, 나머지, 쉬프트) > 비교 > 논리 > 대입 > 기타(형변환, 삼항, instanceof) 정수형은 0을 나눌 수 없다. ArithmeticException 문자 '2(2가 아니어도 된다)'를 숫자로 변환하려면 문자 '0'을 빼 주면 된다 → 50 - 48 = 2 char c1 = 'a'; // char c2 = c1 + 1; 컴파일 에러, 문자형과 정수형 연산은 결과가 정수형이므로 char에 담을 수 없다 char c2 = 'a' + 1; // 'a' + 1이 리터럴 간의 연산이기 때문에 에러 발생하지 않음 System.out.println(c2); // b 상수 또는 리터럴 간의 연산은 실행 과정 동안.. 2021. 11. 16.
변수(variable) 이 글은 남궁성 님의 Java의 정석 책을 참고하여 정리한 글입니다. 지역 변수: 초기화 반드시 필요 → 메모리는 공유 자원이라서 Garbage Value가 남아 있을 수 있다 클래스 변수, 인스턴스 변수: 초기화 생략 가능 식별자 규칙: 특수 문자 '_'과 '$'만 허용 클래스 이름의 첫 글자는 항상 대문자, 변수와 메서드의 이름의 첫 글자는 항상 소문자 https://www.oracle.com/java/technologies/javase/codeconventions-namingconventions.html 자료형 1. 기본형(primitive type) 자료형 값의 범위: -2n-1 ~ 2n-1-1 (n은 bit 수) int: 대략 10자리 수의 값 저장, 7~9자리 수를 게산할 때는 long 타입(.. 2021. 11. 15.
Java란? 이 글은 남궁성 님의 Java의 정석 책을 바탕으로 정리한 글입니다.언어 특징운영체제에 독립적자바가상머신(JVM): 운영체제에 종속적객체지향언어: 상속, 캡슐화, 다형성자동 메모리 관리(Garbage Collection)네트워크와 분산 처리를 지원멀티쓰레드 지원: 시스템과는 관계 없이 구현 가능, 관련 라이브러리 제공, 자바 인터프리터가 여러 쓰레드에 대한 스케줄링 담당동적 로딩 지원: 필요 시점에 따라 필요한 클래스만 유연하게 로딩하고, 작성할 수 있다Java API 문서: https://docs.oracle.com/en/java/javase/index.html 프로그램 작성소스 파일의 이름은 public class의 이름과 일치해야 한다.public class는 없을 수는 있지만 둘 이상 존재하면 안.. 2021. 11. 15.