본문 바로가기

프로그래밍/Java (기초)

(23)
객체지향 프로그래밍 2017-03-04 위 설명은 이해를 돕기 위해 도식화 되어있지만 설명이 정확하지 않으며 모순이 있을수 있습니다.객체지향의 어떤것인지 전혀 이해가 가지 않을 때 간략하게 느낌만 집고 넣어가시길 바랍니다.(__) 빠른 시일내에 수정하도록 하겠습니다. ======================================================================================= public class Animal { String name; public void setName(String name) { this.name = name; } public static void main(String[] args) { Animal cat = new Animal(); cat.setName("..
overloading class Calculator{ int left, right; int third = 0; public void setOprands(int left, int right){ System.out.println("setOprands(int left, int right)"); this.left = left; this.right = right; } 다음의 예제에서 setOprands 메소드의 매개변수를 3개로 변경하여 3가지의 숫자를 더하려고 할때처럼하나의 메소드에 여러가지 경우의 수.. 즉 같은 이름에 여러기능을 추가하고자 할때 사용할때이를 메소드의 오버로딩(method overloading)이라 한다. class Calculator{ int left, right; int third = 0; public void..
overriding 오버라이딩(overriding)두 클래스가 서로 상속의 관계에 있을때, 자식클래스(하위)가 부모클래스(상위) 클래스의 메소드를 사용할때,하위 클래스가 상위 클래스의 메소드를 그대로 사용하게 되는데, 이러한 제약을 없애주는 것이.. 메소드 오버라이딩(method overriding)이라 한다 즉 하위 클래스에서 상위 클래스에 선언된 메소드를 변형시키거나 새로운 기능들을 추가 할수 있게 된다. 메소드의 이름메소드 매개변수의 숫자와 데이터 타입 그리고 순서메소드의 리턴 타입 오버라이딩의 조건(메소드 시그니처(method signature)) - 메소드의 이름- 메소드의 매개변수의 숫자와 데이터 타입과 순서- 메소드의 리턴 타입 이중 하나라도 만족하지 않을 경우 에러가 발생한다. 요약 상속의 관계에서, 같은 메..
인터페이스(interface) 인터페이스(interface) 인터페이스는 우리가 익히 알고 있는 그 인터페이스를 뜻한다.유저 인터페이스의 약자인 UX를 생각해보면.. 사용자의 경험을 말하는데.. 사용자가 어떤 기능들을 사용할때 있어서 경험하게 되는 것을 말한다. 즉 어떤 기능을 사용하는 수단을 말한다고 할수 있다.이처럼 자바에서도 어떤 기능을 사용할수 있게 연결고리를 만들어주는 역할을 하는 것이 인터페이스이다. 인터페이스는 객체, 즉 클래스의 타입중 하나이다. 예제 코드를 보자 package org.opentutorials.javatutorials.interfaces.example1; interface IF{ public void z();} class A implements IF{ public void z(){}} 먼저 IF로 이름붙..
상속(inheritance) 상속(inheritance) 객체를 스스로 만들지 않아, 소스를 변경할수 없거나, 변경 하더라도 원 소스가 사라질수 있을 경우, 문제가 일어나지 않기 위해 객체가 다양한 곳에서 활용되고 있고, 메소드를 추가하면 다른곳에서 문제가 발생할때, 즉 기존의 객체들을 유지 하면서, 새로운 객체를 추가하거나, 기능을 추가할일이 생길때 새로운 클래스를 만들어 기존의 클래스에 ‘상속’ 시키는 개념이 등장하게 된다. 이때 기존에 만들어진 클래스는 새로운 클래스에 객체들을 되물림 하게 된다고 하여.. ‘부모 객체’가 되고, 새로이 추가 되는 객체는 ‘자식 객체’라고 명한다. 부모 클래스와 자식 클래스의 관계를 상위(super) 클래스와 하위(sub) 클래스라고 표현하기도 한다. 또한 기초 클래스(base class), 유..
초기화와 생성자(Constructor), this, super 초기화와 생성자(Constructor) 어떤 일을 시작하기전에 준비를 하는 상태.. (컴퓨터를 부팅하고, 스피커의 전원을 켜는것과 같은) 일을 초기화라고 부르며객체 지향 프로그래밍, 즉 자바에선 이런 개념을 생성자(Constructor)라고 부른다. class Calculator { int left = 100; int right = 100; public Calculator(int left, int right) { this.left = left; this.right = right;} ......... public static CalculatorRun{public static void(String args []){Calculator c1 = new Calculator(10, 20);System.out.Pri..
유효범위 (Scope) 유효범위 (Scope) 코드의 양이 증가할때, 유효범위를 통해 메소드나 클래스 안에 포함되어 사용할수 있게한다. 변수를 클래스 영역에서 선언하게 되면, 클래스 전체에서 사용되고, 이를 전역변수라고 한다또 변수를 메소드에서 선언할 경우, 그 메소드 안에서만 동작하게 하며, 이를 지역변수 라고 한다 즉, 클래스 영역에서 선언한 전역변수는, 다른 메소드 의 중괄호({})의 영역에서 공통적으로 사용 됨을 의미한다.하지만 메소드 영역에서.. 즉 중괄호({})에서 변수를 직접 선언해주게 되면, 전역 변수의 영향을 받지 않으며, 그 메소드 내에서만 사용할수 있는 지역변수가 된다. public class ScopeDemo { static void a() { int i = 0; } public static void ma..
입력과 출력. String[] args String[] args (앱이 시작할때 데이터를 입력) class InputDemo{ public static void main(String[] args){ System.out.println(args.length); } // main 메소드의 String[] args는 사용자가 입력한 값(문자열)을 args(파라미터)에 할당하는 것을 의미하며(args.length)를 통해 args의 데이터의 갯수를 출력한다. 결과(* a b c d를 입력한다면 4가 출력된다) public static void main(String[] args){ for(String e : args){ System.out.println(e); } } // 응용하여 for-each문을 적용시켰다.사용자가 1a 2a 3a 를 입력하면 그 ..