public class mainClass {
public static void main(String[] args) {
/*
* 1. 은닉성(==캡슐화)
* :외부와의 차단으로 변수들을 관리할 수 있다.
* 클래스 내부에서만 접근(처리)이 가능하도록 접근 지정자로 제어한다.
*
* private(개인적인) -> 멤버변수
* public(대중적인) -> 멤버 메소드
* protected(특정) - 상속관련
*
* Object Oriented Programming 객체 지향 프로그래밍
* Aspect(관점) Oriented Programming
*
* 처리 중심.
* 설계 중요
*
* != 절차지향 -> 순차적 처리 (속도)
*
* 1. 은닉성(캡슐화)
* 2. 상속성
* 3. 다형성
*
* class 설계
*
* class 클래스 명 {
* -- 변수부
* 접근 지정자 변수자료형 변수명; member 변수
*
* -- 메소드부
* 접근 지정자 자료형 메소드명(매개변수){
*
* }
* }
*
* 변수(객체)를 선언 후에 동적 할당을 해야 접근 할 수있다.
*
* class 변수 -> object(객체), instance(주체)
* 실제 메모리 영역에 올라가는 변수
*
* 클래스 명 인스턴스 = new 클래스 명();
*
* 인스턴스 -> 실제영역
* stack heap
*/
MyClass cls; // cls == instance;
cls = new MyClass(); // heap cls:stack
cls.c = 'A';
cls.x = 12;
cls.func();
cls.method(33);
// 절차 지향일 경우
// TV(안방, 홀, 내방)
String name[] = new String[3];
int channel[] = new int[3];
boolean power[] = new boolean[3];
TvClass tv1, tv2, tv3;
tv1 = new TvClass();
tv2 = new TvClass();
tv3 = new TvClass();
//위와 같다
TvClass arrTv[] = new TvClass[3];
for (int i = 0; i < arrTv.length; i++) {
arrTv[i] = new TvClass();
}
//생성해줘야 한다
// arrTv[0] = new TvClass();
//
// arrTv[0].setChannel(11);
tv1.setName("LG");
tv2.setName("Samsung");
tv3.setName("Daewoo");
tv1.setPower(true);
tv2.setPower(false);
tv3.setPower(true);
}
}
class MyClass{
// 변수부(MyClass의 멤버)
int x, y;
char c;
String str;
// function 안에만 있어야한다.
// str = "hh";
// 메소드부
void func() {
x = 0;
System.out.println("MyClass func()");
}
void method(int i) {
str = "hello";
x = i;
System.out.println("MyClass method(int i)");
System.out.println("x = " + x);
}
}
Java/java 기초