본문 바로가기

복습

(28)
[Java 복습] Object 클래스 Object 클래스모든 클래스의 최고 조상!! (호호 할아버지)오직 11개의 메서드만을 가지고 있다.notify(), wait() 등은 쓰레드와 관련된 메서드이다.  equals(Object obj) 오버라이딩객체 자신(this)과 주어진 객체(obj)를 비교한다. 같으면 true, 다르면 false.Object 클래스의 equals( )는 객체의 주소를 비교(참조변수 값 비교)public class Equals { public static void main(String[] args) { Value v1 = new Value(10); Value v2 = new Value(10); System.out.println(v1.equals(v2)); }}class ..
[Java 복습] hashCode( ), toString( ) hashCode( )객체의 해시코드를 반환하는 메서드Object 클래스의 hasCode( )는 객체의 주소를 int로 변환해서 반환public class Object { ... public native int hashCode(); // 네이티브 메서드: OS의 메서드(C 언어)} equals( )를 오버라이딩 하면, hashCode( )도 오버라이딩 해야 한다.equals( )의 결과가 true인 두 객체의 해시코드는 같아야 하기 때문이다.String str1 = new String("ABC");String str2 = new String("ABC");System.out.println(str1.equals(str2)); // trueSystem.out.println(str1.hashCode()..
[Java 복습] 예외처리 프로그램 오류 종류컴파일 에러(compile-time error): 컴파일 할 때 발생하는 에러런타임 에러(runtime error): 실행 할 때 발생하는 에러논리적 에러(logicla error): 작성 의도와 다르게 동작  Java의 런타임 에러 에러는 어쩔 수 없지만, 예외는 처리하자!에러: 프로그램 코드에 의해서 수습될 수 없는 심각한 오류예외: 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류  예외처리의 정의와 목적정의: 프로그램 실행 시 발생할 수 있는 예외의 발생에 대비한 코드를 작성하는 것목적: 프로그램의 비정상 종료를 막고 정상적인 실행상태를 유지하는 것  Exception 과 RuntimeExceptionException 클래스들: 사용자의 실수와 같은 외적인 요인에 의해 발..
[Java 복습] 내부 클래스 내부 클래스클래스 안의 클래스class A { }class B { }class A{ // 외부 클래스 ... class B{ // 내부 클래스 객체 생성 없이 A의 멤버 접근가능 ... }} 내부 클래스의 장점내부 클래스에서 외부 클래스의 멤버들을 쉽게 접근할 수 있다.코드의 복잡성을 줄일 수 있다.(캡슐화) 내부 클래스의 종류와 특징내부 클래스의 종류와 유효범위(scope)는 변수와 동일하다.  인스턴스 클래스외부 클래스의 멤버변수 선언 위치에 선언하며, 외부 클래스의 인스턴스 멤버처럼 다루어진다.주로 외부 클래스의 인스턴스 멤버들과 관련된 작업에 사용될 목적으로 선언된다. 스태틱 클래스외부 클래스의 멤버변수 선언위치에 선언하며, 외부 클래스의 static 멤버처럼 다루어진다.주..
[Java 복습] 인터페이스의 장점 인터페이스의 장점두 대상(객체) 간의 연결, 대화, 소통을 돕는 중간 역할을 한다.선언(설계)와 구현을 분리시킬 수 있게 해준다.인터페이스 덕분에 구현부가 바뀌어도 선언부는 안 바꿀 수 있게 된다.(느슨한 결합) => 변경에 유리껍데기 + 알맹이로 분리해놓으니 유연한 코드가 되고 변경에 유리해진다.느슨한 결합은 인터페이스를 한번 거치기 때문에 한 단계 느리겠지만 변경에 유리하고 유연한 코드가 된다.  직접적인 관계의 두 클래스(A-B)class A { public void methodA(B b) { b.methodB(); // B 클래스의 메서드호출 }}class B { public void MethodB() { System.out.println("methodB(..
[Java 복습] 다형성의 장점 그럼 이렇게 기능이 줄어드는데 어떻게 장점이 될 수 있을까??tv리모콘으로 스마트 티비를 다룬다? => 어떤 장점이 있을까(2가지 장점)이 있다!! 첫번째. 참조형 매개변수는 메서드 호출시, 자신과 같은 타입 또는 자손타입의 인스턴스를 넘겨줄 수 있다.class Product{ int price; // 제품가격 int bounsPoint; // 보너스포인트}class Tv extends Product{}class Computer extends Product{}class Audio extends Product{}class Buyer { int money = 1000; // 소유금액 int bounsPoint = 0; // 보너스포인트}//Buyer 추가void buy(Tv t) { /..
[Java 복습] 상속, 캡슐화, 다형성 클래스의 관계 1. 상속 관계 2. 포함 관계 상속기존의 클래스로 새로운 클래스를 작성하는 것( 코드의 재사용)두 클래스를 부모와 자식으로 관계를 맺어주는 것class Point { int x; int y;}class Point3D { int x; int y; int z;}↓class Point3D extend Point{ int z;}  포함 관계포함이란: 클래스의 멤버로 참조변수를 선언하는 것작은 단위의 클래스를 만들고, 이 들을 조합해서 클래스를 만든다. 클래스 간의 관계 결정하기상속관계: ~은 ~이다.(is -a) 포함관계: ~은 ~을 가지고 있다(has - a)   관계를 설정하기 힘들 땐 문장에 대입해보자!상속관계: 원(Circle)은 점(Point)이다.포함관..
[Java 복습] 클래스와 메서드 자바란?프로그래밍 언어컴퓨터 프로그램(애플리케이션)을 만드는데 사용실행환경(JRE) + 개발도구(JDK) + 라이브러리(API) 어디에 쓰일까?PC 애플리케이션 웹 애플리케이션 모바일 애플리케이션(안드로이드) 빅데이터게임, 과학, 소형기기 등 왜 자바일까?다양한 분야에서 활발히 사용20년 동안 프로그래밍 언어 1,2 위(현재는 파이썬, 자바 스크립트)자바를 배우면 컴퓨터에 대한 일반적인 지식모던 프로그래밍 언어(객체지향 + 자바8. 함수형)넓은 생태계  JAVA SE -> 일반적인JAVA ME -> 소형JAVA EE -> 대기업자바의 특징 배우기 쉬운 객체지향 언어 = 프로그래밍 언어 + 객체지향개념(C++, JAVA, PYTHON, JS) 자동 메모리 관리(GC)멀티 쓰레드 지원(채팅 + 문서 보내기)..