Programming

·Programming/java
■ 제네릭 "Generic"의 사전적인 의미는 "일반적인" 이라는 의미를 가지고있다. 제네릭을 클래스내부에서 사용할 데이터 타입를 외부에서 파라미터 형태로 지정하면서 데이터 타입을 일반화 해준다. 제네릭 없이 객체의 여러 자료형을 받을 수 있드록 제작하려면 int, float, double등 모든 자료형의 클래스들을 각각 만들어 주어야한다. 제네릭은 클래스 및 인터페이스를 선언할 때 안에 타입 파라미터를 넣어 작성한다. //제네릭 선언방법 public class 클래스명 { ... } public interface 인터페이스명 { ... } 자주 사용하는 매개변수의 타입은 아래 표와 같다. 선언방법이 정해진 것은 아니지만, 일반적으로 대문자 알파벳 하나로 선언해준다. 타입인자 설명 Type Element..
·Programming/Cs
■ 추상화 오늘은 객체지향 프로그래밍의 4가지 성질 중 하나에 해당하는 추상화에 대해서 서술하도록 하겠다. 여기서 우리는 "추상"의 사전적 의미를 먼저 생각해볼 필요가 있는데 추상의 사전적 의미는 "사물이나 표상을 어떠한 성질, 공통성, 본질에 착안하여 그것을 파악하는 것" 이라는 사전적 의미를 가지고 있다. 여기서 핵심적인 개념은 공통성과 본질을 추출하는 것 이다. 같은 맥락에서, 자바에서의 추상화는 객체의 공통적인 성질 또는 기능을 추출하여 정의하는 것을 의미한다. OOP(Object Oriented Programming) 의 개념 중 하나인 상속이 하위클래스를 정의하기 위해 상위클래스를 사용하는 것 이라고 한다면, 반대로 추상화는 하위클래스들의 공통적인 요소들을 추출해 상위클래스를 만드는 것 이라고..
·Programming/Cs
■ 다형성 객체지향 프로그래밍의 기둥이자 객체지향 프로그래밍에서 가장 중요하다 할 수 있느 다형성에 대해서 알아보자. 다형성이란 하나의 객체가 여러가지 형태를 가질 수 있는 것을 의미한다. 다형성은 영어에서 "여러 개"를 의미하는 poly 와 "어떤 형태 또는 실체" 를 이야기 하는 morphism 의 합성어로 "여러가지 형태" 라는 의미를 담고있다. 자바에서의 다형성은 한 타입의 참조변수로 여러 타입의 객체를 참조 할 수 있도록 만드는 것을 의미한다. 좀 더 구체적으로 이야기 하자면 상속과 비슷하게 상위클래스에 속성을 하위 클래스에서 참조하는 것을 허용하는 것이다. 한가지 유의할 점은, 참조 변수가 사용할 수 있는 맴버의 개수는 실제 객체의 멤버의 개수보다 같거나 적어야 한다는 점이다. 앞선 상속파트에..
·Programming/Cs
■ this() 클래스 안에서 메서드들끼리 상호 호출이 가능하듯이 생성자도 상호 호출이 가능하다. 이를 가능하게 해주는 것이 바로 this() 메서드이다. 한마디로 this() 메서드는 클래스 내에서 생성자를 호출할 때 사용 가능한 메서드라는 것이다. 예를 들어 people 클래스에 people 생성자를 호출하는 것은 people()이 아닌 this() 메서드 인데 이는 people()을 호출하는 것과 동일한 결과를 지니고 있다. this() 메서드를 사용하기 위해서 반드시 지켜야할 2가지의 기본 요소들이 있다. 첫 번째는 this() 반드시 생성자 내에서만 사용되어야 한다, 두 번째는 this() 메서드는 반드시 생성자의 첫 줄에 위치하여야 한다. public class peopleTest { publ..
·Programming/java
■필드 필드는 "클래스에 포함된 변수"를 의미하는 것으로 객체의 속성을 정의할 때 사용된다. 자바에서 변수는 크게 세 가지 Class 변수(cv, Class variable), 지역 변수(lv, local variable), 인스턴스 변수(iv, instance variable)로 구분할 수 있다. 이 중 우리가 필드라 부르는 것은 클래스 변수와 인스턴스 변수인데 이는 static 의 유무로 차이를 확인할 수 있다. 좀 더 구체적으로, static 변수와 함께 선언된 변수는 클래스 변수 그렇지 않은 변수는 인스턴스 변수이다. 그리고 이 두 가지 변수 유형에 포함되지 않고 메 서드 내에서 선언된 변수를 지역변수라고 한다. 이 세가지 유형의 변수들은 주로 선언된 위치에 따라 그 종류가 결정되며 각각 다른 유..
·Programming/Cs
■클래스 앞서 우리는 객체에 대하여 "실재하는 모든 것" 또는 "사용할 수 있는 실체"라고 정의하였다. 클래스(Class)는 이러한 객체를 "정의된 클래스 (BluePrint)" 또는 "틀 (flame) "이라고 정의할 수 있다. 즉, 클래스는 객체를 생성하는 데 사용되며 생성된 객체는 클래스 안에서 설계한 그대로 생성된다. 클래스와 객체는 떼려야 뗄 수 없는 관계인 것이다. 여기서 꼭 짚고 넘어가야 할 부분 있다. 클래스는 단지 객체를 생성하는 하나의 틀이라는 것이다. 즉, 클래스는 객체 그 자체가 될 수 없다. 클래스와 객체는 제품의 설계도와 제품으로 비유할 수 있다. 우리의 실생활을 예로 들자면 자동차의 설계도가 자동차 그 자체일 수 없듯 클래스도 객체 그 자체가 될 수 없다는 말이 된다. 위 그림..
·Programming/Cs
■ 객체지향 프로그래밍 잠시 눈을 돌려 주위를 살펴보자. 각자가 위치한 장소에 따라 여러 사물들과 물체가 보일 것이다. 이처럼 책상, 의자, 컴퓨터, 등등 우리가 주변에서 볼 수 있는 "모든 실재하는 어떤" 대상을 프로그래밍 언어에서는 객체(Object)라고 부른다. 객체 (Object) 는 앞서 예로든 사물뿐만이 아니라, 사람과 동물 심지어 미생물까지도 객채에 범주 안에 들 수 있다. 한마디로 객체는 우리가 보고 느끼고 인지할 수 있는 모든 것을 뜻 한다. 객체 지향 프로그래밍 (OOP, Object Oriented Programming) 의 개념은 모두 이 객체 (Object)에서 부터 시작한다. 객체지향 이론의 핵심 개념은 실제 세계는 이러한 객체들로 구성되어 있으며, 발생 하는 모든 사건들은 이 ..
·Programming/Cs
■ 변수 변수란 ( Variable )? - 타입이 종류라면, 변수는 데이터의 저장 공간을 의미한다. - 예 ) String name1 = "헬로"; 에 사용한 name1 이 변수이다 - 변수를 사용하는 이유에는 다음과 같이 있다. - 메모리에 데이터의 저장 공간을 확보하기 위해. - 다른 개발자와 협업 시 데이터의 이름(변수명)을 붙여 소통한다. - 데이터를 재사용한다. ■ 변수의 선언과 할당. 자바 프로그램을 사전에 비유하면, 사전에 등록된 단어만 프로그램에서 사용할 수 있다. 만약 사전에 등록되지 않은 단어를 사용하려고 한다면, 직접 사전에 등록해 주어야 한다. 이를 변수를 선언하고 할당한다고 말한다. 즉, 변수를 선언하는 것은 데이터를 저장하기 위한 공간을 메모리상에 확보하는 것을 의미하며, 변수..
·Programming/Cs
■ String 이란? 자바는 String 클래스를 사용해 문자열을 다룬다. String은 자바 내장 클래스로서 그 자체로 타입으로 사용 가능하며, 연관된 기능들을 묶을 수 있다. 다시 말해, String 클래스는 문자열 타입으로 사용되며, 문자열과 관련된 유용한 메서드들도 가지고 있다. ■ String 클래스 선언 기본적으로 String 타입은 ("")로 감싸진 문자열 타입이며, char의 배열을 의미한다. String 타읍의 선언과 저장은 다음과 같다. String 변수 변수 = "문자열"; // 문자열 리터럴 대입방식 String 변수 = "문자열" String 변수 = new String("문자열") //new 연산자를 사용해 객체를 생성하고 문자열을 대입 문자열은 다른 변수가 값을 저장하는 방식..
·Programming/java
■ 타입이란? 컴퓨터는 데이터를 다룰 때, 그 데이터를 메모리에 임시로 기억해둔다. 이때, 컴퓨터는 데이터를 어떤 종류이고, 얼마만큼의 크기를 가지는지 알아야한다. 그래야 데이터를 온전히 보관할 수 있을 만큼의 메모리 공간을 확보할 수 있다. 이처럼 데이터의 종류와 크기를 결정짓는 것이 바로 데이터 타입이다. ■ 기본타입과 참조타입 자바의 타입은 실제 값을 의미하는 기본 타입( Primitive Type )과 어떤 값이 저장된 주소를 값으로 하는 참조 타입 (reference type), 두가지의 데이터 타입을 가지고 있다. 기본 타입( Primitive type ) 데이터의 실제값을 의미 정수타입( byte, short, int, long ), 실수타입 (float, double), 문자타입(char)..
·Programming/Cs
■ 개요 우리가 컴퓨터를 조작하기 위해서는 다양한 입력(input)이 필요하다. 원하는 걸 드래그하기 위해 마우스를 사용하고 내용을 입력하기 위해 키보드를 사용하는 등 우리는 컴퓨터에 다양한 입력들을 보내는데 이 입력들을 담당하는 소스를 입력 소스(inPut Source)라고 한다. 키보드, 마우스 이외에도 마이크, 카메라 등도 사용자가 새로운 명령어를 전달하는 소스를 입력 소스이다. 반대로 우리가 입력한 입력 소스 또는 작성된 프로그램에 의해서 모니터에 화면을 나타내거나, 음악을 재생하여 스피커에서 소리가 나게 하는 등 사용자가 인식할 수 있도록 컴퓨터에서 처리해 주어야 하는데, 이 과정을 출력(output)이라고 한다. 그리고 시작적 출력을 당담하는 모니터나 청각적 출력을 담당하는 스피커를 출력 소스..
·Programming/java
■ 기능 - 사용자의 값을 입력받아 출력할 수 있다. - 사용자가 입력한 값 뒤에 메뉴를 출력할 수 있다. - 메뉴를 출력한 뒤 값을 선택하면 그에 맞는 연산을 할 수 있다 . package com.in28minutes.ifstatement.examples; //사용자 입력값을 받아 그에 맞는 함수를 호출해주는 러너 import java.util.Scanner; // 컨트롤 + 1 을 눌러 임포트 할 수 있다. // 스캐너는 자바 내장 클래스 이기 때문에 임포트를 해야한다. public class MenuRunner { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); //인스턴트 객체 선언 System.o..
김제주
'Programming' 카테고리의 글 목록 (5 Page)