Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- dowhile문
- 자바
- 비교연산자
- 문자열
- 명명규칙
- for문
- 산술 쉬프트 연산자
- 단순if
- 비트논리연산자
- 사용자입력Switch문
- Java
- 참조형호출
- 증감연산자
- 배열
- 대입 연산자
- 다중if
- 콘솔출력문
- 변수유효범위
- array
- 논리 쉬프트 연산자
- while문
- 타입변환
- print()
- 순환문
- 기본형호출
- 비정방행렬
- 안드로이드스튜디오
- println()
- 삼항 연산자
- 다차원배열
Archives
- Today
- Total
신입개발자
클래스와 객체 본문
객체 지향의 발전 : 변수 > 배열 > 구조체 > 클래스
변수 : int i = 10
배열 : int i[] = {10,20....}
구조체 : struct score {int[] i, double sum}, 여기까지 절차지향
클래스 : class score {int[] i, double sum, printSum(), ...
public class 클래스 외부에 위치할 수 있는 것 3가지
1. package : 현재의 소스파일의 폴더위치를 나타냄
2. import : 남의 패키지에 있는 클래스를 가져오고 싶을 때
3. 외부클래스 : public 사용금지, 위치 무관, C언어처럼 원형선언 불필요
3. 외부클래스
클래스 : 붕어빵틀, 대문자로 시작, 클래스영역(=메소드 영역)에 위치, 멤버들 = '필드+메소드'+내부(inner) 클래스로 구성
필드 : 클래스 안에서 선언된 변수
메소드 : 클래스 안에서 선언된 함수
생성자 : new와 사용하는 특별한 메소드, 클래스명과 동일
추상클래스 - abstrct 메소드, 미완성 책임을 후세에 전가
인터페이스 - public static final 필드 + public abstract 메소드
객체 : 붕어빵들, 스택영역(주소)
인스턴스 : 클래스를 이용하여 객체를 만드는 행위(=객체와 용어 혼용)
// 1. 패키지
package pk10;
class Frame{ //붕어빵틀 클래스
// 필드
String core = "단팥"; // 필드는 해당 클래스 안(단, 메소드 밖)에서 선언된 변수, 힙영역(값)
// 메소드
void print() { // 메소드 : 클래스 안에서 선언된 함수, 메소드영역(정의) & 힙영역(주소)
int i = 500; // 지역변수는 메소드 내에서 선언된 변수, 스택영역(값)
System.out.println(core + "붕어빵은 " + i + "원"); //메소드내에서 필드 사용 가능
}
}
//지역변수는 스택에
//필드는 힙에
public class 클래스와객체 { //public 클래스는 소스파일명과 동일하고 최대 1개로 유일해야함
public static void main(String[] args) { // main() 메소드는 패키지에서 유일해야함
// 클래스명 객체명 = new 클래스명()
Frame bread1 = new Frame();
// new는 힙에 공간 요청하고 그 주소 반환 //붕어빵틀로 붕어빵 쿡 찍음!
// 객체명.필드
System.out.println(bread1.core); //단팥
// 객체명.메소드()
bread1.print(); //단팥붕어빵은 500원 // 스택 -> 힙 메모리의 주소로 접근연산자(.)
System.out.println();
Frame bread2 = new Frame();
bread2.print(); // 단팥붕어빵은 500원 // 두번째 빵
System.out.println();
bread1.core = "슈크림";
bread1.print(); //슈크림붕어빵은 500원
}
}
Comments