**** car.java *****

package ch08;


public class Car
{

 public String name;
 
 private static Car instance=new Car();
 
 public static Car getIntance() {return instance;}
}

****** CH0809.java *****
package ch08;

public class Ch0809
{
 public static void main(String[] args)
 {
  Car carA = Car.getIntance();
  carA.name="소나타";
  Car carB = Car.getIntance();
  System.out.println(carB.name);
 }
}

Posted by 말없제이
,

Calendar 클래스

DevTool/Java 2009. 6. 8. 17:46

package ch08;

//Calendar클래스는 java.util패키지에 존재하므로
//사용하려면 아래와 같이 java.util패키지를 import해야 한다.
import java.util.*;

public class Ch0808
{
 public static void main(String[] args)
 {
  /* 날짜와 시간을 알려주는 클래스
   * java.util.Date클래스: 옛날의 JDK에서 사용되었다...
   * 현재는 Deprecated되어가는 현재날짜와 시간을 알려주는
   * 클래스이다.
   */
  //Date date=new Date();
 
  //Calendar클래스: 현재 날짜의 연,월,일,시,분,초를 파악하는
  //데 사용되는 클래스이다...
  //Calendar클래스의 인스턴스 생성은 정적(static) 인스턴스 생성방식을
  //따른다...(new로 초기화하지 않음... 이유는 년,월,일,시,분초는
  //모든 사람들이 공유하는 정보니까...)
  Calendar today=Calendar.getInstance();
   
  int year=today.get(Calendar.YEAR);
  System.out.println("년도:"+year);
  //월의 경우는 1월이 0부터 시작한다... 12월이 11월이 된다...
  //고로 정확한 값을 구하려면 구한 월에 +1을 해야 한다...
  int month=today.get(Calendar.MONTH);
  System.out.println("월:"+(month+1));  
  int date=today.get(Calendar.DATE);
  System.out.println("일:"+date);
  int hour=today.get(Calendar.HOUR);
  System.out.println("시:"+hour);
  int min=today.get(Calendar.MINUTE);
  System.out.println("분:"+min);
  int sec=today.get(Calendar.SECOND);
  System.out.println("초:"+sec);
 }
}






Posted by 말없제이
,

package ch08;

public class Ch0806
{
 public static void main(String[] args)
 {
  //대량의 데이터 송신시..
  String a = new String();
  a+="Hello";
  a+="World";
  a+="Java";
  System.out.println(a);
 
  //스트링버퍼 개체의 초기화
  StringBuffer b = new StringBuffer();
  b.append("Hello");
  b.append("World");
  b.append("Java");
  String value = b.toString();
  System.out.println(value);
 
 }
}

****** Ch0807.java *******
package ch08;

public class Ch0807
{
 public static void main(String[] args)
 {
  //String 사용시.. 개체생성..생성..생성..
//  String a="";
//  for(int i=0;i<15000;i++)
//  {
//   a+="Hello\n";
//  }
//  System.out.println(a);
 
  //StringBuffer 사용 .. 통신등에서 사용할 경우.
  StringBuffer b = new StringBuffer();
  for(int i=0;i<15000;i++)
  {
   b.append("Hello\n");
  }
  System.out.println(b);
 }
}

Posted by 말없제이
,

String 클래스.

DevTool/Java 2009. 6. 5. 17:47

package ch08;

public class Ch0805
{
 //String 클래스 : 클래스 자료형으로 기본본질은 생성된  문자열 자료는
 //불변(데이터에 요소추가,요소변경,요소삭제 X)이라는 것이다.
 
 public static void main(String[] args)
 {
  //String message = "Afternoon";
  //message = message+"hahaha";
 
  String message = "Hi";
  //length() : 문자열의 길이 반환;
  System.out.println(message.length());
 
  //char자료형 : 1자를 보관하는 자료형.
  //숫자로도 사용될수 있고(ASCII 숫자형), 문자로도 사용될수 있는자료형을 char형이라 한다.
  char ch='a';
  int a=ch; //ASCII 코드. 번호.
  System.out.println("a : "+ch);
  System.out.println("a : "+a);
 
  //문자열위치인덱스 : 가령 아래와 같은 문자열이 있으면 첫번째 글자는 0번에서
  //시작해서 4번째 위치의 문자열위치 인덱스를 자바는 갖는다.
  //"Hello"
 
  for(int i=0;i<message.length();i++)
  {
   char chc = message.charAt(i);
   System.out.println("char : "+chc);
  }
 
  String ssn = "1234567890123";
  //char ssnd = ??? //성별코드 추출(charAt을 써서)
   
  char ssnd = ssn.charAt(6);
  System.out.println("성별은 : "+ssnd);
 
  //재미삼아 ...
  if(ssnd>=48 && ssnd<58)
  {
   //0의 ASCII : 48
   //System.out.println("합은 ? "+(new Integer(ssnd).intValue()-48));
   System.out.println("숫자는 ? "+ (ssnd-48));
  }
  else
  {
   System.out.println(ssnd+"은 잘못된 표현입니다.");
  }
 
  //substring(시작인덱스) : 지정된 위치부터 문자열끝까지 추출
  //substring(시작인덱스, 종료인덱스) : 지정된 위치부터 종료인덱스까지 추출
  System.out.println(ssn.substring(6));
  System.out.println(ssn.substring(0,6));
 
  //indexOf("찾고자하는 문자열") : 찾고자하는 문자열이
  //처음으로 나타나는 문자열 위치 인덱스변환
  //lastIndexOf("찾고자하는 문자열") : 찾고자 하는 문자열이 마지막으로 나타나는
  //문자열위치 인덱스를 반환한다.
  //둘다 공통적으로 찾고자 한느 문자열이 대상문자열내에 없다면 -1을 반환.
  String path="C:\\WINDOWS\\Web\\bullet.gif";
  System.out.println(path.indexOf("bull"));
  System.out.println(path.lastIndexOf("e"));
  System.out.println(path.lastIndexOf("King"));
 
  //변수를 적절히 잘 써서  bullet.gif를 추출해 보세요.
  System.out.println("그 그림은 : "+path.substring(path.lastIndexOf("\\")+1));
  }
 
 
}

Posted by 말없제이
,

package ch08;

public class Ch0804
{
 //오토박싱(autoboxing) : 기본자료형을 자동으로 컴파일러가 Wrapper클래스로 변환
 //오토박싱은 JDK 5.0이상에서 지원되며, 그 이하에서 사용할수 없다.
 
 public static void main(String[] args)
 {
  //Object a=1;
  Object a=new Integer(1); // 부모클래스의 레퍼런스에 하위클래스 레퍼런스 대입
 
  //Integer b=1;
  Integer b=new Integer(1); //Wrapper 클래스 생성
 
  //Object c=1; // JDK 5.0 수정후 정상확인.
  //Object a=new Integer(1) // 자동으로 변환되는 구문..
 
 }
}

Posted by 말없제이
,

package ch08;

public class Ch0802
{
 //Wrapper클래스 : Object클래스의 하위클래스로 기본자료형을
 //클래스자료형으로 바꿔주거나 반대로
 //클래스자료형을 기본자료형으로 바꿔주는데 사용되는 유용한 클래스
 
 public static void main(String[] args)
 {
  //Wrapper는 기존자료형을 클래스자료형으로 변환되어 사용
  //Wrapper는 Object클래스의 하위클래스이므로 형변환없이 사용가능.
 
  //기본자료형을 클래스자료형으로 바꿀경우
  //방식1>
  Object a=new Integer(1);
  String b = a.toString();
   
  //방식2>
  Object c=Integer.valueOf(1);
  String d=c.toString();
   
  //클래스자료형을 기본자료형으로 바꿀경우
  //방식1>
  String f = "1000";
  Integer g =new Integer(f);
  int h =g.intValue();
   
  //방식2>
  String m = "1000";
  int n = Integer.parseInt(m);
  }
 
}


****** Ch0803.java ****
package ch08;

public class Ch0803
{
 //몇부터 몇까지를 인자로 받아서(String)
 //int형으로 변환..
 
 public static void main(String[] args)
 {
  int sum=0, sum1=0;
  //int sum1=0;
 
  for(int i=0;i<args.length;i++)
  {
   //sum+= ????;
   sum+=Integer.parseInt(args[i]); 
   sum1+=new Integer(args[i]).intValue();
  }
 
  System.out.println("방식1 총합 : "+sum);
  System.out.println("방식2 총합 : "+sum1);
 }
}

Posted by 말없제이
,

package ch08;

import ch05.sub.*;

public class Ch0801
{
// Object클래스 : 자바에서 가장 최상위 클래스로
// 모든 내장클래스자료형 및 사용자정의 클래스도
// 전부 Object 클래스의 하위클래스로 간주된다.
// 제공되는 메서드 : equals메서드, toString메서드
// 고로 대부분의 하위 클래스의 레퍼런스는 형변환없이
// Object클래스의 래퍼런스로 대입 가능하다.
 public static void main(String[] args)
 {
  String a="Hello Java";
  //Object는 모든 클래스의 최상위이므로 String의 경우
  //하위이므로 형변환 필요없다.
  Object b=a;
  //부모클래스의 레퍼런스를 자식클래스의 레퍼런스로 대입할경우
  //형변환이 필요하다.
  String c=(String)b;
 
  //기본자료형은 Object클래스와 계승관계에 있지 않으므로 대입이 안됨.
  int d=1;
  //Object e=1;
  Object e=new Integer(1);
 
  System.out.println("1"=="1"); //잘 작동되는것이 보이나.. Jsp.쪽에서.. 에러가능성.
  // String비교의 경우 같다의 비교형은 ==연산자를
  //가급적 쓰지 않고 equals메서드를 쓰는것이 좋음.
  //(==연산자는 기본자료형의 비교에 사용.)
 
  System.out.println("1".equals("1"));
 
  //equals 메서드는 Object클래스에 존재하는 메서드이므로
  //자바의 모든 하위클래스(사용자저으이 클래스까지) 계승되어 사용,  
  //toString()도 Object클래스의 멤버함수이므로 하위클래스 전부 계승  
 
  String f = b.toString();
  Car carA = new Car();
  //carA.equals(obj)
 
  System.out.println(carA.toString());
 
 }
}

Posted by 말없제이
,
사용자 삽입 이미지
메소드 일일이 구현하기 물론 되지요..
방법 1. 3줄 옆 x표시 클릭.
사용자 삽입 이미지
요렇게 보일때... 메소드 추가하면.
그냥 생성되지요.

방법2 위에서 오른쪽 마우스.. >> 소스 >> 메소드 대체/구현. >> 사용할것들 체크하고 다음.
사용자 삽입 이미지
Posted by 말없제이
,

package ch07;

import ch05.sub.*;

public class Ch0710
{
 public String message="멤버변수";
// 내부무명클래스 : 클래스는 클래스이데 이름이 없는 무명의 클래스로
// 한줄의 프로그래밍 코드안에 구현된 클래스이다.
// 용도는 새로운 클래스의 생성을 할 수 없으며,
//대부분 기존클래스의 오버라이딩이나 추상클래스의 추상메서드 구현 또는
//인터페이스에서 추상메서드의 구현을 목적으로 삼는다.
//(당연한 이야기지만 내부무명클래스 역시 메인클래스의 멤버변수, 멤버함수의 접근이
//자유롭다. 또한 모듈화 역시 불가능하다.)
 
 public Ch0710()
 {
  // TODO 자동 생성된 생성자 스텁
  RacingCar car = new RacingCar()
  {
   public void sayHello()
   {
    System.out.println("반가워요");
   }
  };
  car.sayHello();
 
  Protoss protoss = new Protoss()
  {
   public void shieldUpgrade()
   {
    System.out.println("천하무적 업그레이드");
   }
  };
  protoss.shieldUpgrade();
 
  //인터페이스에서의 추상메소드 구현예.
  Unit u =new Unit()
  {
   public void attackUpgrade()
   {
    // TODO 자동 생성된 메소드 스텁
    System.out.println("attackUpgrade");
   }

   public void defenseUpgrade() {
    // TODO 자동 생성된 메소드 스텁
    System.out.println("defenseUpgrade");
   }

   public void print() {
    // TODO 자동 생성된 메소드 스텁
   
   }

   public void shieldUpgrade() {
    // TODO 자동 생성된 메소드 스텁
    System.out.println("shieldUpgrade : "+message);
   }
   
  };
  u.attackUpgrade();
  u.defenseUpgrade();
  u.shieldUpgrade();
 }
 
 public static void main(String[] args)
 {
  new Ch0710();
 }
 
}

Posted by 말없제이
,

package ch07;

public /* final */ class Father //final 상속시키지 않겠다고 명시한것.
{
 //0604추가
 public int money = 50000;
 
 //Farmer에게 줄때는 계승관계가 아니니 소유..
 public void giveMoney()
 {
  Farmer farmer = new Farmer(this);
  farmer.receiveMoney();
 
  Uncle uncle = new Uncle();
  uncle.receiveMoney();
 }
 
// 내부클래스 : 클래스안의 클래스의 형태로 본질은 외부에 클래스가 존재하는것과 다르지 않다.
// 멤버변수도 둘수 있으며, 멤버함수도 사용 가능하다.
// (다만 이너클래스가 존재하는 메인클래스에서만 사용이 가능하므로
// 모듈화 용도에는 적합하지 않다.)
//장점은 메인클래스의 멤버변수를 내것처럼 자유로이 참조하여 쓸 수 있다.
 
 public /* final */ void work()  // final 하위클래스에서 오버라이딩 허용안함.
 {
  System.out.println("아버지께서 일하셔"); //상속과 클래스 레퍼런스 관계 위해...  
 }
 
 class Uncle
 {
//  public int a; //자유롭게 쓸수 있다.
//  public void print()
//  {
//  
//  }
  public void receiveMoney()
  {
   money = money-20000;
  }
 }
 
 
}


***** ps.
내부 클래스 사용시.. 파일이름 저장방법.
"외부클래스이름$내부클래스이름.class"

Posted by 말없제이
,