this : 인스턴스 자신을 가리키는 참조변수. 인스턴스의 주소가 저장되어 있다. 모든 인스턴스메서드에 지역변수로 숨겨진 채로 존재한다. - this 생략 가능 (but, 객제와 이름 같을시 생략 불가. iv인지 lv인지구별하기 위함) - 클래스 메서드(static메서드)에 사용 불가 this(), this(매개변수) : 생성자. 같은 클래스의 다른 생성자를 호출할 때 사용. - 생성자의 이름으로 클래스이름 대신 this를 사용 - 한 생성자에서 다른 생성자를 호출할 때 반드시 첫 출에서만 호출 가능!
1) 특징 - iv초기화를 편하게 하기위한 메서드 - 인스턴스가 생성될 때마다 호출되는 '인스턴스 초기화 메서드' - 모든 클래스에 반드시 한 개 이상의 생성자 존재 - 기본 생성자 (아래 설명 참조) 2) 생성자 조건 생성자의 이름은 클래스의 이름과 같아야 한다.(클래스이름(타입변수명, 타입변수명, ...) { }) 생성자는 리턴 값이 없다.(반환 값이 없기에 void를 안붙임) Time t = new Time(); t.hour = 12; t.minute = 34; t.second = 56; constructor를 통해 아래와 같이 한줄로 초기화 가능 Time t = new Time(12, 34, 56); 3) default constructor(기본 생성자) - 매개변수가 없는 생성자. 컴파일 할때,..
overloading 이란? : 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것 = 메서드 오버로딩 1) 오버로딩이 성립하기 위한 조건 메서드 이름이 같다. 매개변수의 개수 또는 타입이 다르다. 반환 타입과는 아무런 관련이 없다. // 오버로딩 예제 long add(int a, long a) { return a+b; } long add(long a, int b) { return a+b; } 2) println()이 오버로딩의 대표적인 예시
* Instance 메서드 - 인스턴스 생성 후 '참조변수.메서드이름()'으로 호출 - 인스턴스 멤버(iv,im)와 관련된 작업을 하는 메서드 - 메서드 내에서 인스턴스 변수(iv) 사용가능 * Static 메서드 - 객체생성 없이 '클래스이름.메서드()'으로 호출 - 인스턴스 멤버(iv, im)와 관련없는 작업을 하는 메서드 - 메서드 내에서 인스턴스 변수(iv) 사용불가 - 속성(멤버 변수) 중에서 공통 속성에 static을 붙인다. static int width = 100; - 인스턴스 멤버(iv, im)을 사용하지 않는 메서드에 static을 붙인다. long add() { return a+b; } //a,b는 인스턴스변수 //add()는 인스턴스메서드 static long add(long a, ..
1. 선언위치 - 클래스 영역 ㄴ Class Variable(CV) : 객체생성 필요없이 자동생성 됨. 아무때나 사용 가능. 앞에 static을 붙여 사용. 공통속성인 경우에도 사용. ㄴ Instance Variable(IV) : 객체생성이 필요. - 클래스 영역 이외 영역 ㄴ Local Variable (LV) : 메서드 내에서만 사용 사능. ({}안의 메서드가 종료되면 소멸) 2. 클래스 변수 (CV) 클래스 변수의 값의 클래스 변수를 사용할 때는 '클래수 변수'가 아닌 보통 '클래스명'을 넣는다. 이렇게 하면 클래스 변수를 인스턴스 변수로 오해하기 쉽기 때문. 예시) c1.width = 50 (x) Card.width = 50 (o) 소스코드 예제 public class ex6_3 { public..
1. 클래스 작성 2. 객체 생성 3. 객체 사용 (변수/메서드 호출) 소스코드 public class code1 { public static void main(String[] args) { Tv t = new Tv(); t.channel = 7; t.channelDown(); System.out.println("현재 채널은"+t.channel+"입니다."); } } class Tv{ //TV 속성(멤버변수) String color; boolean power; int channel; //TV 기능(메서드) void power() {power =! power;} void channelUp() {++channel;} void channelDown() {--channel;} }
탄생배경 세상이 빠르게 변하는데, 그변화에 맞추어서 소프트웨어도 변해야하는데, 그게 안되다 보니 80년대 초 소프트웨어 위기가 도래하면서 빠르게 발전하는 세상의 속도에 맞추어 소프트웨어도 변해야 하는데, 빠른 변화를 못쫒아 가게 되면서 80년대 초 소프트웨어 위기가 도래하게 된다. 그 해결책으로 도입이 된것이 객체지향 언어다. 이것은 C언어에 객체지향 개념을 추가한 C++탄생하게 된다. 하지만 너무 어렵다는 단점이 있어 그 당시엔 객체지향이라는 개념이 잘 확산이 되지 않았다. 그 이후의 C++의 단점을 보완하여 좀더 쉽고, 잘 사용하지 않는 기능을 뺀 JAVA가 보편화되면서 객체지향 개념이 확산되었다. 객제지향 언어(Object-Orianted Programing)의 의미를 정의하자면, 기존의 프로그래밍..
- Total
- Today
- Yesterday