Java 82

Chapter 09 java.lang 패키지와 유용한 클래스

1. java.lang 패키지 (Java language) - 가장 기본이 되는 클래스들 포함 (import문이 필요없이 사용 가능) Ex) String, System, ... (를 import없이 사용) 1.1 Object 클래스 - 모든 클래스의 최고 조상, 오직 11개의 메서드만을 가진다. -> Object클래스의 멤버(멤버변수는 없고 메서드만있음)들은 모든 클래스에서 바로 사용가능하다. - notify(), wait() 등은 쓰레드와 관련된 메서드이다. - protected => public으로 바꿔야 오버라이딩 할 수 있다. (안 하면 같은 패키지에서만 쓸 수 있다.) - 리플렉션 API 1) equals(Object obj) - 객체 자신(this)과 주어진 객체(obj)를 비교한다. 같으면 ..

Java/Java의 정석 2022.02.24

Chapter 08 예외처리 Exception Handling

1. 예외처리(Exception Handling) Def) 예외: 컴파일도 되고 실행도 되지만 의도와 다른게 동작하는 것 1.1 프로그램 오류 - 컴파일 에러: 컴파일 시에 발생하는 에러 ex) system.out.println(); => 오류 - 런타임에러: 실행 시에 발생하는 에러 - 논리적 에러: 실행되지만, 의도와 다르게 동작하는 것 - 에러와 예외 차이 -> 에러: 코드에 의해 수습될 수 없는 심각한 오류 -> 예외: 코드로 수습할 정도의 미약한 오류(실행 잘 되지만 의도와 다르게 동작) - 예외처리의 정의, 목적 Def) 프로그램 실행 시 발생할 수 있는 예외의 발생에 대비한 코드를 작성하는 것 - 목적: 비정상 종료를 막고, 정상적 실행상태를 유지한다. 1.2 예외 클래스의 계층구도 - 모든..

Java/Java의 정석 2022.02.23

Chapter 07 객체지향 프로그래밍 II

1. 상속(Inheritance) 1.1 상속의 정의와 장점 Def) 상속: 기존의 클래스를 재사용해서 새로운 클래스를 작성하는 것 - 코드의 중복 제거, 생산성 향상, 유지 보수에 기여한다. - 'extends' 키워드 사용 - 두 클래스는 조상 - 자손 클래스 관계를 맺는다. - 자손은 조상의 "모든 멤버"를 상속 받는다. (멤버 - 멤버 변수나 메서드만 상속) - 생성자와 초기화 블럭은 상속되지 않는다. - 자손의 멤버 개수는 조상보다 적을 수 없다. (클래스는 멤버들의 집합) -> 조상 클래스: 부모(parent)클래스, 상위(super) 클래스, 기반(base) 클래스 -> 자손 클래스: 자식(child)클래스, 하위(sub) 클래스, 파생된(derived) 클래스, 유도 클래스 Ex) clas..

Java/Java의 정석 2022.02.22

Chapter 06 객체지향 프로그래밍 I

1. 객체지향언어 - 코드의 재사용성 높음 - 유지보수가 쉽고 중복 코드 제거, 빠른 변화를 쫓아간다. - 객체지향언어 = 프로그래밍 언어 + 객체지향개념(규칙) .. 규칙은 외우기 - 핵심 개념 (자바의 대표적인 4가지 특징) 1) 캡슐화(Encapsulaion): 객체와 객체간의 의사소통을 위해 필요한 정보만을 노출한다. (실제 내부의 구현 정보는 숨긴다.) 2) 상속(Inheritance): 상위 클래스와 하위 클래스가 계층적인 구조를 가진다. 상위 클래스의 공통된 특성을 하위클래스만다 반복 없이 한 번만 기술한다. 재사용성의 효과가 있다. 3) 추상화(Abstraction): 실세계의 객체에서 필요한 부분만을 간결하고 이해하기 쉬운 클래스로 만든다. (속성과 행동으로 구체화) 4) 다형성(Polu..

Java/Java의 정석 2022.02.22

Chapter 05 배열(Array)

1. 배열(Array) 1.1 배열이란? Def) 배열: 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것을 배열이라고 한다. 1.2 배열의 선언과 생성 - 선언 방법 -> 타입[] 변수이름 ex) int[] score; String[] name -> 타입 변수이름[] ex) int score[]; String name[] - 배열의 생성 -> 변수이름 = new 타입[길이] // 배열을 생성(실제 저장공간을 생성한다.) - 배열의 선언과 생성을 동시에 할 수 있다. int score = new int[5]; 1.3 배열의 길이와 인덱스 - 인덱스의 범위는 0부터 '배열 길이 -1'까지 - 인덱스 0부터 시작한다. - 배열의 범위에 속하지 않는 값을 인덱스로 하여 출력하도록 하면 "ArrayIndexO..

Java/Java의 정석 2022.02.20

Chapter 04 조건문과 반복문

1. 조건문 - if, switch - 처리할 경우의 수가 많으면 if 보다 switch가 효율적이지만 if 보다 제약이 많다. 1.1 if문 - 결과가 참인 조건식을 만날 때까지 첫 번째 조건식부터 순서대로 평가한다. package javaStudy; import java.util.*; public class FlowEx2 { public static void main(String[] args) { int input; System.out.print("숫자를 하나 입력하세요.>"); Scanner scanner = new Scanner(System.in); String tmp = scanner.nextLine(); // 화면 통해 입력받은 내용을 tmp에 저장 input = Integer.parseInt..

Java/Java의 정석 2022.02.19

Chapter 03 연산자(Operator)

1. 연산자 1.4 연산자의 우선순위와 결합 규칙 1) 순서: 산술 -> 비교 -> 논리 -> 대입 2) 단항(1) > 이항(2) > 삼항(3). (단항 연산자의 우선순위가 이항 연산자보다 높다.) 3) 단항 연산자(++ -- + - ~ ! type)와 대입 연산자를 제외한 모든 연산의 진핸 방향은 왼쪽에서 오른쪽이다. -> 대입 연산자(=, +=, -=, *=, /-, %=,... ) Note) 관계 연산자 (결과로 true/ false 반환) - >. >=, 대소구분 없음 5. 논리 연산자 5.1 논리 연산자 ( || (OR 결합), && (AND 결합), ! ) - true, false를 결과로 얻는다. 5.2 비트 연산자 ( &(AND 연산자), |(OR 연산자), ^(XOR 연산자), ~, ) ..

Java/Java의 정석 2022.02.19

Chapter 02 변수(Variable)

1. 변수(Variable) 1.1 변수란? Def) 변수: 단 하나의 값을 저장할 수 있는 메모리상의 공간을 의미한다. (프로그래밍 상에서) - 수학에서의 변수는 변하는 수라고 정의한다. 1) 멤버 변수 (membered variables, 소속 변수, 클래스 변수, 필드, 속성 변수) - 클래스 내부에 소속된 변수 - 주로 클래스 내부의 메서드들에 의해 사용된다. - 선언만 되어 있고 명시적으로 초기화하지 않으면 기본값이 적용된다. -> 기본값(boolean: false, char/ byte/ short/ int/ long/ float/ double: 0, String, Date: null ) 2) 지역 변수 (local variables) - 클래스 내의 메서드내부에서 선언되어서 사용되는 변수 - ..

Java/Java의 정석 2022.02.17

Chapter 01 자바를 시작하기 전에

1. 자바(Java Programming Language) 1.1 자바란? - 자바는 선에서 개발하여 1996년 1월에 공식적으로 발표한 객체지향 프로그래밍 언어이다. - 자바의 중요한 특징은 운영체제(Operating System, 플랫폼)에 독립적이라는 것이다. - 자바는 풍부한 클래스 라이브러리(Java API)를 통해 프로그래밍에 필요한 요소를 기본적으로 제공한다. - 이를 잘 활용하면 강력한 기능의 자바 프로그램을 작성할 수 있다. - 자바는 꾸준히 성능 개선하며 새로운 버전을 발표한다. - 모바일(J2ME)이나 대규모 기업환경(J2EE), XML.. 등 최신기술을 지원하며 활동 영역을 넓히고 있다. 1.2 자바의 역사 - 1991년 썬의 엔지니어들에 의해 고안된 언어 오크(Oak)에서 시작 되..

Java/Java의 정석 2022.02.15

Chapter 10-63 하샤드 수

Ex) 양의 정수 x가 하샤드 수라면 x의 자릿수 합으로 x가 나눠줘야 한다. 예를 들어 18의 자릿수의 합은1 + 8 =9이고 18은 9로 나눠 떨어지므로 하샤드 수이다. Harshad함수는 양의 정수 n을 매개 변수로 받는다. 입력받은 n이 하샤드 수인지 아닌지 판단하는 함수를 완성하라. package javaStudy; public class HarshadNumber { public boolean isHarshad(int num) { int su = num; int sum = 0; boolean isHarshad = false; while( su > 0) { sum += su % 10; su = su / 10; } if(num % sum == 0) isHarshad = true; return isH..