JAVA 34

오버로딩 (overloading) / 가변인자(varargs) : 매개변수 개수를 동적으로 사용할 수 있는 기능

오버로딩? 한 클래스 안에 같은 이름의 메서드 여러개 정의하는 것. - 자바에서는 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메서드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메서드를 정의할 수 있다. void println() void println(boolean x) void println(char x) 오버로딩이 성립하기 위한 조건 1. 메서드 이름이 같아야 한다. 2. 매개변수 개수 또는 타입이 달라야 한다. 3. 반환 타입은 영향이 없다. 오버로딩이 아닌 경우 //매개 변수의 타입과 개수가 일치하기 때문에, 리턴타입은 상관없으므로 오버로딩으로 간주되지 않는다. int add(int a, int b) { return a+b;} long add(int a, ..

클래스메서드(static 메서드) 와 인스턴스 메서드 / 클래스멤버와 인스턴스멤버간의 참조와 호출

1. 인스턴스 메서드 인스턴스 생성 후, '참조변수.메서드이름()' 으로 호출 인스턴스 멤버(iv,im)와 관련된 작업을 하는 메서드 메서드의 작업을 수행하는데 인스턴스 변수를 필요로 하는 메서드. 메서드 내에서 인스턴스 변수(iv) 사용 가능 2. static 메서드(클래스메서드) : 메서드 앞에 static이 붙은 것 객체생성 없이 '클래스이름.메서드이름()'으로 호출 ex. Math.random() 또는 Math.round() 인스턴스 멤버(iv,im)와 관련없는 작업을 하는 메서드 인스턴스와 관계없는 메서드를 클래스메서드로 정의한다. 메서드 내에서 인스턴스 변수(iv) 사용 불가 * 가장 큰 차이점은, static 메서드는 객체 생성없이 호출 가능하고 인스턴스메서드는 인스턴스 생성 후 호출 해야 ..

클래스의 정의/ 변수와 메서드/ 클래스변수/ 인스턴스 변수/ 지역변수

클래스의 관점 설계도 데이터+ 함수 사용자 정의 클래스의 또 다른 정의 : 클래스는 데이터와 함수의 결합의 의미를 가진다. 또는 사용자정의 타입의 의미도 있다. 프로그래밍 언어에서 데이터 처리를 위한 데이터 저장 형태의 발전과정은 아래와 같다. 1. 변수 : 하나의 데이터를 저장할 수 있는 공간 2. 배열 : 같은 종류의 여러 데이터를 하나로 저장할 수 있는 공간 3. 구조체 : 서로 관련된 여러 데이터 (종류관계 X)를 하나로 저장할 수 있는 공간 4. 클래스 : 데이터와 함수의 결합 ( 구조체+ 함수) 클래스를 사용함으로서 더 객체지향적인 언어를 사용할 수 있다. 변수와 메서드 변수는 클래스변수, 인스턴스 변수, 지역변수 세종류가 있다. 변수의 종류를 결정짓는 중요한 요소는 ' 변수의 선언된 위치'이..

객체지향 언어 OOP ( object oriented programming)

객체지향 언어의 큰 특징 4가지 1. 캡슐형 2. 상속 3. 추상화 4. 다형성 코드의 재사용성이 높다 : 새로운 코드를 작성할 때 기존의 코드를 이용하여 쉽게 작성할 수 있다. 코드의 관리가 용이하다 : 코드간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있다. 신뢰성이 높은 프로그래밍을 가능하게 한다 : 제어자와 메서드를 이용해서 데이터를 보호하고 올바른 값을 유지하도록 하여, 코드의 중복을 제거하여 코드의 불일치로 인한 오동작을 방지할 수 있다. -> 재사용성과 유지보수 그리고 중복된 코드의 제거. 세 가지 관점에서 보면 쉽게 이해할 수 있다. 클래스와 객체 그리고 인스턴스 클래스 ( Class ) : '객체를 정의해 놓은 것'. 또는 '객체의 설계도 또는 틀' 객체 : '실제로 존재하는..