다라다라V
article thumbnail
[JAVA] 11 추상 클래스와 인터페이스
코딩언어/JAVA 2022. 11. 3. 02:18

세상에는 다양한 종류의 도형이 있습니다. 직사각형이나, 사다리꼴, 삼각형 등등 다양한 종류가 있고 이들은 모두 도형이라는 특징을 가지고 있습니다. 각 도형을 자바에서 구현하기 위해 Polygon 클래스를 부모로 상속한다고 가정해봅시다. 만약 각 도형의 넓이를 구하는 메서드를 Polygon 클래스에 구현해두면 각 도형에 맞는 넓이를 구할 수 없을 것입니다. 그렇다고 각 도형 클래스에 따로 정의하면 메서드 이름을 따로 기억해야하는 번거로움이 있을 것 입니다. 이러한 문제 상황을 해결하기 위해 만들어진 것이 추상 클래스와 인터페이스입니다. 비슷한 행위를 하는 각 클래스에 동일한 메서드를 강제로 구현하도록 하는 추상클래스를 배워봅시다. 또한 공통의 부모를 가지지 않지만 같은 행동을 강제해야하는 경우 사용하는 인..

article thumbnail
[JAVA] 10. 상속과 다형성
코딩언어/JAVA 2022. 10. 30. 00:21

📌 상속과 다형성 실제 일상에서도 비슷한 일을 하는 여러 형태의 도구가 있습니다. 이들을 활용하여 필요한 곳에 모아서 사용하거나, 같은 기능을 하는 것끼리 모아서 보관을 편히 할 수도 있습니다. 자바에서도 상속받은 객체들끼리 모아서 배열로 만들거나 매개변수로 사용할 수 있습니다. 오늘은 객체 지향언어의 특징인 다형성을 배워봅시다. 다양한 형태가 존재하는 다형성이라는 객체 지향 언어의 특징을 배워봅시다. 이러한 다형성의 활용 방법을 배워보며 업캐스팅과 다운 캐스팅의 용어도 배워봅니다. 또한 각 객체가 명시된 클래스로부터 생성되었는지를 확인하는 instanceof 연산자도 배워봅시다. 📌 I. 상속과 다형성 📚 1. 다형성 (Polymorphism) 다양한 형태가 존재한다는 의미 프로그래밍을 유연하게 만들어..

article thumbnail
[JAVA] 09. 클래스 상속
코딩언어/JAVA 2022. 10. 24. 00:27

현실의 상속은 부모의 재산을 자식이 상속받는 것을 의미합니다. 그러나 객체 지향 언어에서의 상속은 부모의 생물학적 특징을 물려받는 유전과 비슷하다고 생각하면 좋습니다. 부모 클래스에서 만들어진 특징을 자식 클래스가 물려받고, 필요에 따라 유지, 수정, 추가할 수 있습니다. 자바의 객체별로 각 클래스를 작성하다 보면 반복되는 부분이 있을 것입니다. 이러한 부분을 효율적으로 동일한 처리할 때 사용하는 클래스 상속의 개념을 배워봅시다. 또한 하위 클래스에서 상속된 상위 클래스를 접근 및 수정하는 방법을 배워봅시다. 📌 클래스 상속의 기본 개념 📚 배경 비슷한 동작을 하는 서로 다른 객체들을 작성하는 방법은 두 가지입니다. 📃 포괄적인 속성/행위를 갖는 클래스로 구현 지나친 일반화로 서로 다른 객체 간에 구분이..

article thumbnail
[JAVA] 08. 배열
코딩언어/JAVA 2022. 10. 22. 01:46

일상 생활에서도 비슷한 것들끼리 묶어두면 유지 관리하기 쉽고, 필요할 때 내용을 찾기도 쉽습니다. 프로그래밍에서도 같은 자료형끼리 묶어서 관리하는 배열이 있습니다. 배열을 통해 각 내용들을 모으고 관련된 내용을 다루고 묶어서 관련된 처리를 할 수 있습니다. 자바에서의 배열을 다뤄보겠습니다. 기본 자료형과 참조 자료형의 1차원 배열은 어떻게 다룬지 비교해보고, 여러 배열들이 모여 만들어진 다차원 배열에 대해 배워겠습니다. 더불어 각 배열의 요소에 접근하는 방법이나 함수에 배열을 매개변수로 삼을 때 차이점도 배워보겠습니다. 📌 기본 자료형의 1차원 배열 📚 JAVA 배열 사용시 유의점 배열은 반복문으로 반복적 사용을 고려하여 설계해야함 배열 + 반복문을 세트로 생각할 것 자바의 배열은 참조 자료형 * 참조 ..

article thumbnail
[JAVA] 07-2 자바 기본 API
코딩언어/JAVA 2022. 10. 20. 01:10

📌 java.lang.Object 클래스 📚 java.lang.Object 클래스 자바의 모든 클래스들은 이 클래스를 기반으로 작성됨 모든 클래스의 부모 역할을 하는 클래스 명시적으로 상속 관계를 기술하지 않아도 모든 클래스에 강제로 상속시키는 최상위 클래스 java.lang.Object 클래스의 주요 메서드들은 다음과 같습니다. 메소드 설명 boolean equals(Object obj) obj가 가리키는 객체와 현재 객체를 비교하여 같으면 true 리턴 * 객체는 속성값을 비교하는 것이 아닌 참조 변수 자체를 비교합니다. 때문에 객체의 값을 비교하기 위해서는 equals가 필요합니다. int hashCode() 현 객체에 대한 해시 코드 값 리턴 Sting toString() 현 객체에 대한 문자열 ..

article thumbnail
[JAVA] 07-1 자바의 패키지와 모듈
코딩언어/JAVA 2022. 10. 18. 02:02

개발자 별로 코드를 작성하다보면 클래스 이름이 같아질 수 있습니다. 이러한 코드를 합쳐 사용하기 위해서는 다른 개발자 코드의 클래스 이름을 바꿔야합니다. 자바에서는 이를 보완하기 위해 패키지(package)라는 개념을 도입되었습니다. 서로 관련있는 코드를 묶어서 관리하는 패키지와 JDK9 업데이트 이후 사용되는 모듈에 대해서 배우도록 하겠습니다. 패키지 선언 방식도 배워보도록 하겠습니다. 07-2 포스트에서는 자바에서 자주 사용되는 패키지들의 사례들을 보도록 하겠습니다. 📌 자바 패키지 📚 패키지의 개념 및 필요성 서로 관련된 코드(클래스나 인터페이스) 파일을 묶은 것 클래스 이름 앞에 패키지 이름을 붙여 같은 이름의 클래스 파일 사용 가능 클래스를 기능별로 묶어 놓아 관리 또는 접근을 용이하게 함 각 ..

article thumbnail
[JAVA] 06. 캡슐화와 정보 은닉
코딩언어/JAVA 2022. 10. 14. 00:15

알약은 각 기능을 하는 성분들을 하나의 캡슐에 묶어 사용자가 먹거나 관리하는 것을 편하게 합니다. 또한 알약은 그 기능을 수행하기 위한 최소한의 부분 즉 외형만 공개하고 그 외의 것은 숨깁니다. 이를 통해 환자들은 알약을 쉽게 섭취하고 약으로서 편히 사용할 수 있는 것 입니다. 자바 객체는 데이터를 가지고 있는 "멤버 필드"와 그 기능을 하는 "메서드"로 기능들이 묶여있습니다. 때문에 개발자나 사용자가 객체를 유지 및 보수하기 좋습니다. 또한 객체의 멤버 필드나 메서드 중 필요한 부분만 접근하도록 하여 부적절한 접근을 막을 수 있습니다. 📌 캡슐화와 정보 은닉 📚 캡슐화(Encapsulation) "데이터"와 관련된 "메서드"들을 하나의 객체로 묶는 것을 의미 내부를 보호하여 보다 쉽고 안전한 사용을 가..

article thumbnail
[JAVA] 05. 클래스의 멤버
코딩언어/JAVA 2022. 10. 13. 01:04

📌 메서드 처리 방식 📚 메서드 호출 메커니즘 각 인수의 표현식은 메서드가 호출되기 전에 먼저 계산됩니다. 계산된 결과값은 임시 변수에 저장됩니다. 계산된 각 인수값은 해당되는 형식 매개변수에 위치 순서대로 복사됩니다. 매개변수의 타입으로 인수를 타입변환(캐스팅)할 수 있습니다. 메서드 본체의 문장은 마지막 문장이나 return 문이 나오기 전까지 수행됩니다. return 문의 표현식이 계산됩니다. 계산의 결과값은 마찬가지로 임시변수에 저장되고 임시 변수의 값을 호출측으로 반환합니다. 메서드 호출측은 메서드 호출문 자리에 return 문으로 넘겨받은 결과값을 대입합니다. 📚 메서드 인자 전달 방식 인수가 매개변수로 전달되는 방식에 대한 관점은 두 가지가 있습니다. 인수가 매개변수로 복사되는 것은 모두 동..

article thumbnail
[JAVA] 04. 클래스와 객체
코딩언어/JAVA 2022. 10. 12. 01:29

프로그래밍을 하다 보면 객체 지향 방식과 절차 지향 방식 등 다양한 프로그래밍 개발 방식에 대해 많이 들어볼 수 있습니다. 또한 반복되는 변수들과 함수들을 안전하고 편리하게 관리하는 방법을 찾아보게 됩니다. 오늘은 객체 지향 언어와 절차 지향 언어의 차이점과 객체 지향 언어의 특징을 배워보겠습니다. 객체 지향 언어의 대표적 예시인 자바의 클래스와 객체에 대해 알아보고, 객체 지향 언어로써 자반의 특징을 알아보겠습니다. 마지막으로 자바 클래스의 기본 구조를 알아봅니다. 📌 객체 지향 언어의 특징 📚 절차 지향 언어 vs 객체 지향 언어 📃 절차 지향 언어 (Procedural Programming) 커피를 내린다고 가정을 해봅시다. 이 과정을 서술하면 등으로 서술될 수 있을 것입니다. 프로그래밍 언어에서 ..

article thumbnail
[JavaScript] 03. FUNCTIONS 함수
코딩언어/JavaScript 2022. 10. 11. 00:11

📌 FUNCTIONS 📚 What are Functions? 프로그래밍에서 특정 작업을 여러 번 수행하기 위해 만든 것이 Function(함수)입니다. 코드 블록을 함수로 블록화 하여 필요할 때마다 해당하는 코드 블록을 재사용합니다. 함수를 만들고 사용하는 방법과 이를 사용하여 더 명확하고 간결한 코드를 만드는 방법을 배웁니다. 📚 Function Declarations / 함수 선언 JavaScript에서는 함수 선언을 통해 함수를 생성할 수 있습니다. 함수 선언은 함수의 이름 또는 식별자를 할당합니다. 함수 선언 방법은 다음과 같습니다. 함수의 선언문은 fucntion이라는 키워드로 시작됩니다. 함수 이름 혹은 식별자로 함수를 구분하며, 뒤에 ( )가 붙습니다. 함수 중괄호 { }로 묶인 부분은 특정..