본문 바로가기

Dev.BackEnd/JAVA

(33)
[JAVA] 11 - 1. Object 클래스와 그 메소드들 Chapter 11 - 1. Object 클래스 .equals( ) 메소드 Java의 모든 클래스는 하나의 동일한 클래스를 상속받는다.이렇게 하면 최상위 클래스에 정의되어 있는 메소드를 사용할 수 있게 되는 장점이 존재한다. Object 클래스 모든 클래스의 조상인 Object 클래스 어떠한 클래스를 정의했는데 아무 클래스도 상속받지 않고 있다면 자동적으로 Object 클래스를 상속하고 있는 것이다. 모든 클래스들이 갖고 있는 기능들. 왜? Object 클래스에 있는 메소드들을 통해서 클래스의 기본적인 기능을 정의할 수 있기 때문이다. Object 클래스에 선언되어 있는 메소드는 객체를 처리하기 위한 메소드와 스레드를 위한 메소드로 나뉜다. 쓰레드를 위한 메소드들은 final로 선언이 되어 있어서 오버라..
[JAVA] 10. 예외처리(Exception Handling) Chapter 10. 예외처리 (Exception Handling)코드를 작성하는 과정에서 예기지 못한 수많은 에러들이 발생한다.컴파일 전에 알게 되는 에러도 있고,작성할 때는 아무 문제 없다가 실행시키고 나서야 발생하는 에러들이 있다.이것들을 제어할 수 있어야 좀 더 안전한 프로그램을 설계할 수 있게 된다. 에러 (Error) ? 예외 (Exception) ?컴파일 에러 - 컴파일 시에 발생하는 에러런타임 에러 - 실행 시에 발생하는 에러논리적 에러 - 실행은 되지만, 의도와 다르게 동작하는 에러 대부분의 컴파일 에러는 이클립스 같은 IDE들이 빨간줄 표시로 잡아준다.문제는 실행 시 발생하는 프로그램 오류다.자바에서는 이 Runtime 오류를 에러와 예외, 두 가지로 나누어 인식한다.에러(error)메..
#객체지향적 설계 원칙 - 이론을 통해 알아보는 객체지향 #객체지향적 설계 원칙 SOLID *SRP (Single Responsibility Principle) : 단일 책임 원칙 OCP (Open-Closed Principle) : 개방-폐쇄 원칙 LSP (Liskov Substitution Principle) : 리스코프 치환 원칙 ISP (Interface Segregation Principle) : 인터페이스 분리 원칙 DIP (Dependency Inversion Principle) : 의존 역전 원칙 단일 책임 원칙 클래스는 단 한 개의 책임을 가져야 한다. 클래스를 변경하는 이유는 단 한개이어야 한다. 단일 책임 원칙을 지키지 않았을 때, 한 책임의 구현 변경에 의해 다른 책임과 관련된 코드가 변경될 가능성이 높다. 개방-폐쇄 원칙 확장에는 열려 ..
# 객체 지향에 대한 이해 / 객체 지향적 설계 객체지향 프로그래밍 정의 객체 지향의 가장 기본은 객체이며, 객체의 핵심은 기능을 제공하는 것이다.실제로 객체를 정의할 때 사용하는 것은 객체가 제공해야 할 기능이며, 객체가 내부적으로 어떤 데이터를 갖고 있는 지로는 정의되지 않는다. 이러한 기능들을 오퍼레이션(operation)이라고 부른다. 즉, 객체는 오퍼레이션으로 정의가 된다. 시그니처 객체 지향으로 설계하기 위해서는 오퍼레이션의 사용법을 알아야 한다. 오퍼레이션의 사용법은 다음 세 가지로 구성된다. 기능 식별 이름 파라미터 및 파라미터 타입 기능 실행 결과 값 및 타입 이 세 가지를 시그너처(Signature)라고 부른다. 인터페이스 객체가 제공하는 모든 오퍼레이션 집합을 객체의 인터페이스(Interface)라고 부른다. JAVA 언어에서의 인..
[JAVA] 9. 다형성 / 객체지향적 이해, 다형성과 클래스, 다형성과 인터페이스 Chapter 9. 다형성 (Polymorphism)다형성의 사전적 정의는 같은 종의 생물이지만 모습이나 특징이 고유한 특징이 다양한 성질을 의미한다.단어의 뜻부터 어려운 이 다형성이 객체지향개념의 중요한 특징 중 하나이다. 다형성여러 가지 형태를 가질 수 있는 능력을 의미하며,자바에서는 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 함을 구현하는데 사용한다.좀 더 구체적으로는 조상클래스 타입의 참조변수로 자손클래스의 인스턴스를 참조할 수 있도록 하였다는 것이다.코드를 통해 이해하는게 더 빠를 것 같다. class A { public String x() { return "x"; } } class B extends A // class A를 상속받고 있는 class B { public Strin..
[JAVA] 8. 인터페이스 Chapter 8. 인터페이스 (Interface)인터페이스의 사전적 정의는 사물과 사물 사이 또는 사물과 인간 사이의 경계에서, 상호 간의 소통을 위해 만들어진 물리적 매개체나 프로토콜이다.IT용어로는 컴포넌트에 접속하기 위한 규격이라고 나와있는데, JAVA에서의 인터페이스는 무엇인가 인터페이스 인터페이스란 규제의 일환으로 일종의 추상클래스이다.추상클래스보다 추상화 정도가 높아서, 일반 메서드 또는 멤버변수를 구성원으로 가질 수 없는 것이 차이점이다.추상클래스를 미완성 설계도라고 비유했다면, 인터페이스는 밑그림만 그려져있는 설계도를 위한 스케치, 기본 설계도라고 볼 수 있다. 문법 어떤 객체가 있고, (클래스가 있고) 그 클래스가 특정한 인터페이스를 사용한다면 그 클래스는 반드시 인터페이스에 구현되어 ..
[JAVA] 7. 추상클래스와 추상메서드 Chapter 7. 추상클래스 (abstract class)제어자 중에서 abstract라는 것이 있었다.이 제어자가 클래스 앞에 붙으면 추상클래스가 된다.추상클래스가 무엇이며, 사용하는 이유는 무엇인가? 추상클래스클래스를 설계도에 비유한다면, 추상클래스는 미완성 설계도에 비유할 수 있다.단어 뜻 그대로 완성되지 못한 채로 남겨진 설계도를 말한다.미완성 메서드(추상메서드)를 포함하고 있다는 의미이다,추상메서드를 포함하고 있다는 것을 제외하고는 일반 클래스와 전혀 다르지 않다. 추상클래스는 그 자체로 클래스 역할을 다 하지 못하지만,새로운 클래스를 작성하는데 있어서 바탕이 되는 조상클래스로서의 중요한 역할을 한다. 추상메서드(abstract Method)메서드는 선언부와 구현부로 구성되어 있다.추상메서드란..
[JAVA] 6. 접근제어자와 정보은닉 Chapter 6. 접근제어자(access modifier)과 정보은닉(information hiding)자바를 공부하기 전에 C언어 공부를 선행했다면,반환형 함수이름 매개변수 말고 앞에 하나씩 더 붙고 있다는 걸 알았을 것이다.자바에서는 정의한 클래스 또는 메소드에 접근할 수 있는 범위를 설정해두어서,정보를 은닉해두고 더 나아가 캡슐화 한다. 제어자(modifier)제어자란 클래스. 변수 또는 메서드의 선언부에 함께 사용되어부가적인 의미를 부여하는 역할을 한다.밑에서 설명할 접근제어자 말고도 몇 가지 제어자라고 불리는 것들이 존재한다. static앞에서 static 클래스, static 변수(클래스 변수)를 설명할 때 다뤘다.이 또한 제어자라고 할 수 있다. final변수에 사용되면 값을 변경할 수 없..