[객체지향프로그래밍][Java] Queue 심화 내용
·
전공/객체지향프로그래밍
Interface Queue Queue는 인터페이스 Collection 상속 메소드 기능 boolean add(E e) e를 큐에 삽입, 성공시 true 반환 용량을 초과한 경우 IllegalStateException 발생 E element() 큐의 head 반환 큐가 비어있으면 예외 발생 boolean offer(E e) e를 큐에 삽입, 성공시 true 반환 용량을 초과한 경우 false 반환 E peek() 큐의 head 검색 큐가 비어있으면 null반환 E poll() 큐의 head 검색 및 삭제 큐가 비어있으면 null 반환 E remove() 큐의 head 삭제 큐가 비어있으면 예외 발생 Queue는 선입선출 방식으로 원소를 저장 head에서는 remove, poll로 인해 삭제가 일어남 re..
[객체지향프로그래밍][Java] 상속 2 (오버라이딩)
·
전공/객체지향프로그래밍
메소드 오버라이딩(Method Overriding) 슈퍼 클래스의 메소드를 서브 클래스에서 재정의 슈퍼 클래스 메소드의 이름, 매개변수 타입 및 개수, 리턴 타입 등 모든 것 동일하게 작성 메소드 무시하기, 덮어쓰기 동적 바인딩 발생 - 서브 클래스에 오버라이딩 된 메소드가 무조건 실행되는 동적 바인딩 메소드 오버라이딩 사례 class Shape { public void draw() { System.out.println("Shape"); } } class Line extends Shape { public void draw() { //오버라이딩 System.out.println("Line"); } } class Rect extends Shape { public void draw() { //오버라이딩 Sys..
[객체지향프로그래밍][Java] 상속 1 (객체 생성, 접근 지정자, 업캐스팅, 다운캐스팅, instanceof 연산자)
·
전공/객체지향프로그래밍
객체지향의 상속 부모클래스에 만들어진 필드, 메소드를 자식클래스가 물려받음 부모의 생물학적 특성을 물려받는 유전과 유사 상속을 통해 간결한 자식 클래스 작성 동일한 특성을 재정의할 필요가 없어 자식클래스가 간결해짐 장점 클래스의 간결화 - 멤버의 중복 작성 불필요 클래스 관리 용이 - 클래스들의 계층적 분류 소프트웨어의 생산성 향상 - 클래스 재사용과 확장 용이 - 새로운 클래스의 작성 속도 빠름 자바의 상속과 객체 상속 선언 - extends 키워드 사용 -> 슈퍼 클래스를 확장한다는 개념 부모 클래스 자식 클래스 슈퍼 클래스 서브 클래스 클래스 상속 만들기 - Point와 ColorPoint 클래스 class Point { private int x, y; //한 점을 구성하는 x, y 좌표 publi..
[객체지향프로그래밍][Java] 클래스와 객체 2 (접근 지정자, static, final)
·
전공/객체지향프로그래밍
접근지정자 public: 어떤 클래스에서든 접근 가능 protected: 같은 패키지에 있는 다른 클래스나, 상속받은 자식 클래스에서 접근 가능 private: 해당 클래스 내부에서만 접근 가능 default(package-private): 같은 패키지 내에서만 접근 가능, 따로 접근 지정하지 않았을 경우 자동으로 지정 접근지정자는 객체지향 프로그래밍에서 캡슐화를 구현 클래스 내부 상태와 행동을 적절히 제어 코드의 유지 보수성과 재사용성 향상 클래스 접근 지정 public class World { // public 클래스 } 멤버 접근 지정 멤버에 접근하는 클래스 private 디폴트 접근 지정 protected public 같은 패키지의 클래스 x o o o 다른 패키지의 클래스 x x x o 접근 가..
[객체지향프로그래밍][Java] 클래스와 객체 1 (클래스의 구성, 생성자, this, 객체 배열, 오버로딩, 가비지 컬렉션)
·
전공/객체지향프로그래밍
클래스의 구성 public class Circle { // public: 접근 권한, class 클래스 선언, Circle 클래스 이름 public int radius; // 원의 반지름 필드 public String name; // 원의 이름 필드 public Circle() { //원의 생성자 메소드 } public double getArea() { // 원의 면적 계산 메소드 return 3.14*radius*radius; } 클래스 선언, class Circle class 키워드로 선언 클래스는 { } 안에 모든 필드와 메소드 구현 class Circle은 Circle 이름의 클래스 선언 클래스 접근 권한, public -> 다른 클래스들에서 Circle 클래스를 사용하거나 접근할 수 있음을 선언..
[Java] 자바 기본 문법 4
·
프로그래밍 언어/Java
자바의 예외 처리 컴파일 오류 - 문법에 맞지 않게 작성된 코드 - 컴파일할 때 발견 예외(Exception) 오동작이나 결과에 악영향을 미칠 수 있는 실행 중 발생한 오류 정수를 0으로 나누는 경우 배열보다 큰 인덱스로 배열의 원소를 접근하는 경우 존재하지 않는 파일을 읽으려고 하는 경우 정수 입력을 기다리는 코드가 실행되고 있을 때, 문자가 입력된 경우 자바에서 예외처리 가능 예외 발생 -> 자바 플랫폼 인지 -> 응용프로그램에서 전달 응용프로그램이 예외를 처리하지 않으면, 응용프로그램 강제 종료 try-catch-finally 예외가 발생할 때 대응하는 응용프로그램 코드 try { 예외가 발생할 가능성이 있는 실행문(try 블록) } catch (처리할 예외 타입 선언) { 예외 처리문(catch ..
[Java] 자바 이론
·
프로그래밍 언어/Java
프로그래밍 언어 기계어: 이진수로 구성된 언어, CUP는 기계어만 처리 가능 어셈블리어: 기계어를 표현하기 쉬운 언어인 니모닉 기호로 일대일 대응 시킨 언어 고급언어: 사람이 이해하기 쉽고 복잡한 작업 등을 위해 고안된 언어 → C/C++, Java 등 컴파일 소스 프로그램 편집 및 개발 → 소스 프로그램→ 컴파일러 → 기계어 → 프로그램 실행 자바의 태동 목적 플랫폼 호환성 문제 해결 플랫폼 독립적인 언어 개발 메모리 사용량이 적고 다양한 플랫폼을 가지는 가전제품에 적용 WORA(Write Once Run Anywhere) 한번 작성된 코드는 모든 플랫폼에서 바로 실행 C/C++ 등 기존 언어가 가진 플랫폼 종속성 극복 네트워크에 연결된 어느 클라이언트에서나 실행 WORA를 가능하게 하는 자바의 특징 ..