목록공부/JAVA (41)
랩터
포함(composite)은 상속처럼 클래스를 재사용할 수 있는 방법으로, 클래스의 멤버로 다른 클래스 타입의 참조변수를 선언하는 것을 의미합니다. public class Employee { int id; String name; Address address; public Employee(int id, String name, Address address) { //Employee 안에 Address가 포함되어잇음 this.id = id; this.name = name; this.address = address; } void showInfo() { System.out.println(id + " " + name); System.out.println(address.city+ " " + address.country)..
상속 자바 언어에서 상속이란 기존의 클래스를 재활용하여 새로운 클래스를 작성하는 자바의 문법 요소를 의미합니다. 가장 단순한 형태를 생각해 보면, 두 클래스를 상위 클래스와 하위 클래스로 나누어 상위 클래스의 멤버(필드, 메서드, 내부 클래스)를 하위 클래스와 공유하는 것을 의미합니다. 여기서 우리는 이 두 클래스를 서로 상속 관계에 있다고 하며, 하위 클래스는 상위 클래스가 가진 모든 멤버를 상속받게 됩니다. 따라서 하위 클래스의 멤버 개수는 언제나 상위 클래스의 그것과 비교했을 때 같거나 많습니다. "~클래스로부터 상속받았다"라는 표현보다는 "~클래스로부터 확장되었다"는 표현이 그 역할과 기능을 생각했을 떄 더 적절한 표현입니다. 왜 상속을 사용할까요? 상속을 통해 클래스를 작성하면 앞선 예제에서 확..
추상화 먼저 “추상”이라는 용어의 사전적 의미를 보면 “사물이나 표상을 어떤 성질, 공통성, 본질에 착안하여 그것을 추출하여 파악하는 것"이라고 정의합니다. 여기서 핵심적인 개념은 공통성과 본질을 모아 추출하는 것입니다. 속이 하위 클래스를 정의하는데 상위 클래스를 사용하는 것이라고 한다면 추상화는 반대로 기존 클래스들의 공통적인 요소들을 뽑아서 상위 클래스를 만들어 내는 것이라고 할 수 있습니다. 자바에서는 주로 추상 클래스와 인터페이스라는 문법 요소를 사용해서 추상화를 구현합니다. abstract 제어자 abstract는 주로 클래스와 메서드를 형용하는 키워드로 사용되는데, 메서드 앞에 붙은 경우를 ‘추상 메서드(abstract method)’, 클래스 앞에 붙은 경우를 ‘추상 클래스(abstract..
패키지 **패키지(package)**란 특정한 목적을 공유하는 클래스와 인터페이스의 묶음을 의미합니다. 자바에서 패키지는 물리적인 하나의 디렉토리(directory)이고, 하나의 패키지에 속한 클래스나 인터페이스 파일은 모두 해당 패키지에 속해있습니다. Import 문 import 문은 다른 패키지 내의 클래스를 사용하기 위해 사용하며, 일반적으로 패키지 구문과 클래스 문 사이에 작성합니다. 만약 같은 패키지에서 여러 클래스가 사용될 때는 import 문을 여러 번 사용하기보다는 위에 작성된 것처럼 import 패키지 명.* 으로 작성하면 해당 패키지의 모든 클래스를 패키지 명 없이 사용할 수 있습니다. 제어자(Modifier) 자바 프로그래밍에서 제어자는 클래스, 필드, 메서드, 생성자 등에 부가적인 ..
캡슐화란 특정 객체 안에 관련된 속성과 기능을 하나의 캡슐(capsule)로 만들어 데이터를 외부로부터 보호하는 것을 말합니다. 이렇게 캡슐화를 해야 하는 이유로 크게 두 가지 목적이 있습니다. 첫째는 데이터 보호의 목적이고, 둘째로 내부적으로만 사용되는 데이터에 대한 불필요한 외부 노출을 방지하기 위함입니다. 정리하면, 캡슐화의 가장 큰 장점은 정보 은닉(data hiding)에 있다고 정리할 수 있습니다. 자바에서 캡슐화를 수행하기 위한 핵심적인 수단으로 접근제어자(Access Modifier)와 getter와 setter 메서드를 중심으로 학습을 진행합니다.
OOP: 프로그래밍에서 필요한 데이터를 한 데 모아 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 협력과 유기적인 상호작용을 통해 특정 기능을 구성 객체지향 프로그래밍은 실제 사물의 속성(state)과 기능(behavior)을 분석한 후에 이것을 프로그래밍의 변수와 함수로 정의함으로 실제 세계를 최대한 컴퓨터 프로그래밍에 반영하고자 하는 시도라 설명할 수 있다. 프로그램 개발 및 유지 보수에 드는 비용과 시간을 획기적으로 줄일 수 있고, 객체를 통해 데이터를 관리하여 데이터를 손실 없이 관리하기에 용이하다. => 생산성 향상 개념을 기록을 통해 꼼꼼히 잘 다져보자. 하루에 한번씩. 미루지 말고. 클래스 클래스와 객체 객체가 우리가 인지할 수 있는 ‘실재하는 모든 것’이자 ‘사용할 수 있는 ..
배열이란? 배열이란, 동일한 타입의 값들을 하나의 묶음으로 묶은 자료 구조를 의미합니다. 즉, 각 값들이 같은 의미를 지니면서 서로 연관성이 있을 때, 이들을 하나의 덩어리로 묶을 수 있으며, 이렇게 묶인 값들의 집합을 배열이라고 합니다. 배열을 만들때 중요한것 한가지 타입만 들어올수 있음 1차원 배열의 선언과 초기화 1차원 배열은 가장 일반적인 배열의 형태로, 배열의 요소가 배열이 아닌 배열을 의미합니다. 1차원 배열을 선언할 때에는 다음과 같이 타입 뒤에 대괄호를 붙여서 선언하고 초기화할 수 있습니다. 가변 배열 2차원 이상의 다차원 배열에서는 1차원보다는 자유로운 형태로 배열을 만들 수 있습니다. 즉, 배열이 2차원 이상일 때, 마지막 차수에 해당하는 배열의 길이를 고정하지 않아도 되며, 이러한 배..
01_sum sum 문제 수를 입력받아 0부터 해당 수까지의 합을 리턴해야 합니다. 입력 인자 1 : num int 타입의 정수 (num >= 0) 출력 int 타입을 리턴해야 합니다. 주의 사항 반복문(for)문을 사용해야 합니다. package com.choongang; public class A_Sum { public int sumTo(int num) { // TODO: int sum = 0; for(int i =0; i = 2) { num = num -2; } if(num ==1) { result = true; } else { result = false; } return result; } //음수일때 else { boolean result; while (num= 0) 출력 int 타입을 리턴해야 ..
반복문반복문은 코드들이 반복적으로 실행되도록 할 때 사용되며, 반복문의 종류로는 for문, while문, do-while문이 있습니다. for문과 while문은 서로 변환이 가능하기 때문에 반복문을 작성할 때 어느 쪽을 선택해도 좋지만, for문은 반복 횟수를 알고 있을 때 주로 사용하고, while문은 조건에 따라 반복할 때 주로 사용합니다. for문for문은 조건식이 참인 동안 주어진 횟수만큼 실행문을 반복적으로 수행합니다.public class Main { public static void main(String[] args) { int sum = 0; // for (초기화; 조건식; 증감식) for(int num = 0; num for문안에 i가 있어도 밖에서 i를 또 선언해서 쓸..
내계정에 연동-fork 코드 다운 code에서 zip file 다운로드 -한글 안깨지게 하는 코드 -쉬프트 두번 누르고 edit vm누르고 젤 첫번째꺼에서 2번째줄 해당 코드 그대로 작성 연산자(Operator) 연산자란, 하나의 값 또는 여러 개의 값을 피연산자로 하여 새로운 값을 만들어내는 기호를 의미합니다. 자바에서 연산자의 종류는 많습니다. 하지만, 모든 연산자를 지금 한 번에 배울 필요는 없습니다. 산술 연산자 나눗셈 연산자를 사용할 때, 좌항과 우항이 모두 int형이면 그 결과도 int형이기 때문에 소수점 이하의 값은 버려지고, 오직 몫만 결과로 반환됩니다. int num1 = 9 / 0; // 에러 double num2 = 9.0 / 0; // Infinity int num3 = 9 % 0;..