728x90
728x90

비전공자의 개발과 친해지기 35

[JAVA : 클래스와 객체]8. 추상화 & 추상클래스

추상화 & 추상클래스 추상화는 상속에서만 사용될 수 있는 개념이다. "추상적이다"라는 뜻은 "구체적이지 않다"라는 말과 일맥상통한다. 즉, 추상화란 구체적으로 무언가를 만드는 것이 아니다. 이 추상화 개념을 프로그래밍과 연관하여 생각한다면, 부모 클래스에서 추상적으로 메서드를 만들어 놓으면, 자식 클래스에서 해당 메소드를 다시 구체화한다. public class Main { public static void main(String[] args) { //Animal animal = new Animal("동물"); 불가능합니다. Lion lion = new Lion("사자"); lion.Growl(); Cat cat = new Cat("고양이"); cat.Growl(); } } abstract class An..

[JAVA : 클래스와 객체]7. 오버라이딩

오버라이딩 오버라이딩(overriding)이란 부모 클래스의 멤버를 자식 클래스에서 재정의하여 사용하는 것을 말합니다. public class Main { public static void main(String[] args) { Parent p = new Parent(); Child c = new Child(); p.print(); c.print(); } } // 부모 클래스 정의 class Parent { public int iInt; public void print() { System.out.println("Parent Class"); } } // 자식 클래스 정의 class Child extends Parent{ public void print() { System.out.println("Child ..

[JAVA : 클래스와 객체]6. 상속

상속, 부모클래스와 자식클래스 상속의 사전적 의미는 1) 뒤를 잇다. 2) 죽은 사람의 권리와 의무를 이어받는 일입니다. 일반적으로 부모가 자식에게 재산, 권리, 의무 등을 물려주는 것을 상속이라고 합니다. 프로그래밍에서의 상속 또한 비슷한 역할을 합니다. 물론 일반적인 재산, 권리, 의무를 물려주는 것이 아니라 "클래스의 멤버를 물려준다."는 차이점이 있습니다. 이때 물려주는 클래스를 "부모 클래스", 물려받는 클래스를 "자식 클래스"라고 얘기합니다. public class Main { public static void main(String[] args) { Parent p = new Parent(); Child c = new Child(); p.print(); c.print(); } } // Pare..

[JAVA : 클래스와 객체]5. static

static static 은 메서드 혹은 변수에 붙여 사용할 수 있는데 이를 클래스에서 유용하게 사용할 수 있습니다. 만약 클래스 안의 멤버에 static이 붙으면 그 멤버는 클래스의 객체를 선언하지 않고 바로 콜해서 사용할 수 있습니다. import java.io.*; class Main { public static void main(String[] args) { ClassExample.mInt = 3; ClassExample.Print(); ClassExample c = new ClassExample(); c.mInt = 20; c.Print(); } } class ClassExample { public static int mInt; public static void Print() { System.o..

[JAVA : 클래스와 객체]4. 접근제한자

- 접근제한자 접근제한자로 OOP의 4가지 특징 중 캡슐화를 가장 잘 표현할 수 있습니다. 접근제한자는 멤버 변수 및 메서드를 선언할 때 사용하며, 접근제한자를 통해 멤버 변수 및 메소드를 공개하는데 있어서 제약을 걸 수 있습니다. 접근제한자를 통해 데이터 접근을 제한한 예시입니다. import java.io.*; class Main { public static void main(String[] args) { ClassExample ce; ce = new ClassExample(); ce.mDouble = 10;// 오류 발생 ce.CE_Print_mDouble(); ce.CE_Set_mDouble(30); ce.CE_Print_mDouble(); } } class ClassExample { privat..

[JAVA : 클래스와 객체]3. 생성자(constructor)

- 생성자(constructor) 생성자는 클래스에서 특별한 메서드입니다. 일반적인 메서드는 사용자가 호출할 때에 한해 동작하지만 생성자는 사용자가 객체를 생성할 때 자동으로 호출되는 메서드입니다. 생성자는 return 형을 사용하지 않으며 클래스와 동일한 이름을 가져야 합니다. import java.io.*; class Main { public static void main(String[] args) { ClassExample ce; System.out.println("ce object Called"); ce = new ClassExample(); System.out.println("ce Object Created"); } } class ClassExample { ClassExample() { Syst..

[JAVA : 클래스와 객체]2. 멤버

- 멤버(Member) 멤버란 클래스를 구성하는 요소를 뜻하며 메서드와 변수로 이루어져 있습니다. 클래스는 멤버를 통해 내부의 데이터를 저장하거나 연산할 수 있는데, 이때 클래스 내부의 변수를 "멤버 변수"라고 칭합니다. 아래 예제는 간단하게 작성할 수 있는 클래스 코드입니다. class ClassExample { double mDouble; void CE_Print_mDouble() { System.out.println(mDouble); } void CE_Set_mDouble(double dInput) { mDouble = dInput; } } 위 클래스는 ClassExample 이라는 이름으로 정의되었으며, mDouble 이라는 double형 멤버변수 CE_Print_mDouble라는 void형 메소..

[JAVA : 클래스와 객체]1. 클래스와 객체

- 클래스와 객체 클래스는 사용자가 직접 정의하여 사용할 수 있는 자료형입니다. 클래스와 기본 자료형은 형태의 차이점을 갖지만 '형식과 사용 방법을 명시한 실체 없는 틀'이라는 공통점을 갖고 있기 때문에, 자료형과 변수가 항상 짝을 이루는 것처럼 클래스 또한 객체와 짝을 이룹니다. 즉, '객체'는 '클래스'라는 자료형으로 만들어진 변수라고 할 수 있습니다. 클래스는 객체가 선언되었을 때 실체를 가지게 되며, 객체를 통해 클래스에 포함된 다양한 데이터를 다룰 수 있습니다. 우리 실행활에서 클래스와 객체를 비유할 수 있는 아주 좋은 예시가 있습니다. 바로 붕어빵 틀과 붕어빵의 관계입니다. 클래스는 붕어빵 틀이고, 객체는 붕어빵에 비유한 다음 두 문장이 있습니다. 1. 붕어빵 틀 없이 붕어빵이 만들어질 수 없..

[JAVA : 표준 입출력]3. 키보드 입력

- 키보드 입력 Scanner는 입력 관련 클래스이므로 객체를 통해 사용할 수 있습니다. import java.io.*; import java.util.Scanner;// Scanner 사용시 명시 필수! class Main { public static void main(String[] args) { int iVal; double dVal; Scanner scanner = new Scanner(System.in); System.out.print("정수를 입력해주세요 : "); iVal = scanner.nextInt(); System.out.println("입력 정수 : " + iVal); System.out.print("실수를 입력해주세요 : "); dVal = scanner.nextDouble(); ..

[JAVA : 표준 입출력]2. 콘솔 출력

print() 메소드는 데이터를 줄 바꿈 없이 출력할 때 사용합니다. public void print(boolean b) public void print(char c) public void print(int i) public void print(long l) public void print(float f) public void print(double d) public void print(char[] s) public void print(String s) public void print(Object obj) print() 메서드는 여러 데이터 타입으로 오버로딩 되어있어 데이터 타입에 신경쓸 필요 없이 사용가능하도록 되어 있습니다. 주의할 점은 반드시 파라미터가 하나 있어야 한다는 것입니다. println(..

728x90
728x90