1.자바프로그래밍 기본

특징

많은 클래스, 파일로 프로그램이 구성된다. 클래스는 데이터를 갖고 있고 메소드는 데이터를 다루게 된다. 객체의 데이터를 다루기 위해서는 외부에서 메소드를 호출해야 한다.

하드웨어는 컴포넌트화로 인해 빠른 발전이 이루어졌다. 소프트웨어 또한 이에 따라 컴포넌트화로 발전하게 되었다.

객체지향은 설계분석이 가능하다. 요구사항 분석->추상화->객체관계 분석(상속,의존 등)

캡슐화, 상속, 다형성의 특징을 갖는다.

코드의 재사용성이 높다. 추상화 과정으로 인해 가능해지는것. 상속을 통해 부모에 존재하는 메소드 사용가능.
잘못된 예: 홈쇼핑 프로젝트에서 만든 Person 클래스를 ERP를 만드는곳에서 Person을 만드는데 사용한다.

예외처리를 통해 신뢰성이 높아진다.

java는 운영체제에 영향을 받지 않는다는 특징.

JRE + API + javac + rt.jar = JDK

객체와 클래스

객체는 정보를 효율적으로 관리하기 위하여 의미를 부여하고 분류하는 논리적 단위
클래스를 사용자 데이터 타입 이라고도 한다.

객체의 구성요서는 속성(필드,인스턴스 변수)이 필요하다.
클래스 내부에 있는 변수는 필드 혹은 속성이라 한다.!
기능은 메소드라 한다.

컴파일 과정

네비게이터로 bin 폴더를 보자.
코들를 짜면 bin 폴더 내부에 클래스파일이 컴파일되어 생성된다.

메소드 영역

필드정보(클래스에 대한 정보. getClass() 메소드를 통해 얻을 수 있다.), 메소드 코드, main메소드, static 변수, static 메소드

stack

지역변수. 자바는 전역변수의 개념이 없으므로 모든 변수는 여기에 생성됨.

heap

객체

접근자

public - 내부, 같은 패키지, 자식접근, 외부 가능.

protected - 내부, 같은 패키지, 자식접근 가능.

(default) - 쓰지않는것을 권고한다. 내부, 같은 패키지에서 접근가능.

private - 내부에서만 접근 가능.

정보은닉

데이터는 private를 넣고 접근할 때 메소드를 쓴다. 엔터프라이즈에서는 이러한 메소드를 빈이라고 부른다.

final

final은 클래스 앞, 변수앞 , 필드 앞에도 정의할 수 있다.
final은 여기가 마지막이라는 뜻.
상수는 대문자로 만들라는 관례가 있다.!
따지고 보면 변수와는 별 다른게 없지만 알아보기 편하게!

1
2
3
final int VALUE = 10;

VALUE = 30; //에러발생
1
2
3
4
public final class Test{
.....
}
이 경우 다른클래스가 Test클래스를 상속할 수 없음.
1
2
3
4
public final Sring getName() {
return name;
}
오버라이딩 금지!!
생각해보자
1
2
3
4
5
6
7
8
9
10
public void show() {
System.out.println( "점[x=" + x + ",y=" + y +"]을 그렸습니다.");
}

public void show(boolean visible) { //외부에서 매개변수를 통해 보이고 안보이고를 show메소드로만 통제
if(visible) {
show();
}else {
System.out.println( "점[x=" + x + ",y=" + y +"]을 지움.");
}

코드를 위와 같이 구현 시 사용자는 show라는 메소드에 접근하고 boolean 값만을 통해 출력 미출력을 통제할 수 있다. 이 형태가 좋은 이유는 show , notShow 와 같은 메소드를 만들어서 사용자가 모든 메소드를 알고 있어야하는 상황을 없앨 수 있다.

Share