반응형
inner class는 생략
package com.daegu.java; // kr.ac.daegu.java.Father public class Father { static protected String name; int age; float money; public Father() { /* * // protected Father(){ Father father = new Father(); 외부에서 위와 같이 호출하여 * 사용할 경우는 */ } // public void inherit() { // ; overriding가능 protected void inherit() { // ; overriding가능 System.out.println("아버지의 것을 상속하다."); } }
package com.recruit.java; //패키지(package) //; interface, class(일반~, error, exception), enum //annotation import java.lang.*; //기본 패키지 -> 묵시적 선언 -> 사용 가능 ! import com.daegu.java.Father; //import kr.ac.daegu.java.*; //모든 구성요소를 "다(all)" 가져옴(import) // 분야별로 구분 // Jabva 내장 패키지 // + 사용자 정의 패키지 /* * import java.util.*; * import java.sql.*; * import javax.sql; * * import java.io.*; * import java.net.*; * * import java.awt.*; * import java.awt.event.*; * import java.awt.applet.*; * * import com.tgusoft.erp.man * */ // public static class Son extends Father { //(x) public class Son extends Father { // public class Son extends kr.ac.daegu.java.Father { // 굳이 import 하지 않아도 됨. String name; int age; float money; // implicit : 묵시적 // <-> explicit : 명시적 Son() { // super(); } // 상속에 대한 명시가 없을 경우는 단독적인(자신의) // 멤버 메소드로 간주함. // void inherit() { // } @Override public void inherit() { // (O) // protected void inherit() { // (X) name = ""; // 자신의 필드 // this.name=""; super.name = ""; // default // 아버지의 필드 } static void abcd() { } static {// static block(블럭) System.out.println("static block입니다."); } /* * 마치 main(static) 메소드에서 실행하는 것과 동일한 결과를 출력 단위 테스트(unit test)할 때 사용 main * 메소드(소스)를 사용하지 않고도 모듈(modul) 테스트 가능 ! ex) jUnit : 단위 테스트 툴(tool) => * TDD(Test Driven Development) 테스트 중심(주도) 개발 ; 개발일정 수립시 별도의 디버깅 기간(교정기간)을 * 할당하지 않고 평상시에 늘 (단위)테스트를 하면서 개발하는 방법 -> 인건비 절감 효과, 피드백(feedback) 최소화 < - > * 폭포수개발방법(water-fall 방식) */ /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Father father = new Father(); // 부모 클래스의 객체를 생성할 경우에는 // 접근 제한자 조건이 public으로 맞추어져야 한다. father.name = ""; // public ! -> 호출(사용) 가능 ! // super.name = ""; //ststic 구문 -> super/this(x) // this.name=""; // static 구문 -> super/this(x) // inherit(); // 정적 메소드만 호출 ! // this.inherit(); // static 구문 -> super/this(x) Son son = new Son(); son.inherit(); // (o) abcd(); // static method son.abcd(); // 인스턴스(동적객체).~ : static way(x) -> 허용함 ! Son.abcd(); // 정석적인 static way // 클래스 변수(정적 (객체) 변수).~ // static 메소드/필드 // -> 기본 메모리-> 프로그램 종료시 소멸됨. // 프로그램 실행 중 -> 소멸(destroy)(X) // 종료시 소멸 -> 남용시 메모리 문제(leak)! // : GC(garbage collector) 담당<= JVM // : 동적 (객체) 변수"만" GC됨 ! // -> Heap(자유 메모리 공간)으로 // 사용하던 메모리 주소 반환 // 중요한 부분(광역 상수, 정적 메소드, 패턴) // 제작시에만 신중하게 사용 ! // 중요한 부분(광역 상수, 정적 메소드, 패턴) // 제작시에만 신중하게 사용 ! } // inner class의 경우는 static이 허용 ! public static class InnseClass { }// 내부 클래스(inner class) // 클래스 내부의 클래스 // ex) 임신중인 산모(class) // = 아기(inner class)를 배속에 가지고 있다. }// Son class end
반응형
'JAVA' 카테고리의 다른 글
SimpleDateFormat 클래스를 이용하여 날짜와 시간 포맷하기 (0) | 2013.07.22 |
---|---|
문자열(String) 처리 종합 예제 (0) | 2013.07.22 |
특수문자 도표(& 문자)(링크) (0) | 2013.07.18 |
2013년 7월 1일 강의내용. (0) | 2013.07.14 |
접근 제어자 및 각종 지시자 비교 (0) | 2013.07.14 |