9주차 수업정리! 메소드방식

class Box
{
int width;
int height;
int depth;
long idNum;
static long boxID=100;    // static으로 선언하여 현제 이쪽에서만 사용하게 만든다.
public static long getCurrentID()
{
return boxID++;
}

}

 


class  StaticMethodDemo {
 public static void main(String[] args)
 {
  Box r1 = new Box();
  r1.idNum = Box.getCurrentID();
  System.out.println("초기값 : " +  r1.idNum + "입니다.");
  Box r2 = new Box();
  r2.idNum = Box.getCurrentID();
  System.out.println("마지막값 : " + r2.idNum + "입니다.");
  System.out.println("다음번 객체의 idNum은 :" + r2.getCurrentID() +"입니다.");
 }
}
------------------------------------------------------------------------------------------------------



class One
{
 int value;
 public One()
 {
  this(100);
 }
 public One(int value)
 {
   this.value=value;
   Another.methodA(this);
 }
}

class Another
{
 static void methodA(One ins)    
 {
  System.out.println("값은" + ins.value + "입니다.");
 }

}

 


class OneTest
{
 public static void main(String[] args)
 {
  int value;
  One r1 = new One();
  System.out.println("One test에서의 값은" + r1.value + "이다");
  value = Integer.parseInt(args[0]);
  One r2 = new One(value);
  System.out.println("one test에서의 값" + r2.value + "이다");
 }
}

public 과 private는 객체생성이 되었을때 사용할수 있는것이고 , static은 객체의 생성없이.. 그값을 바로 사용할수 있다.
따라서.. 위쪽에 static은 객체가 없으므로 static을 사용하여야 한다.
Integer.parseInt(args[0])는 접근할때 사용하는것이다...

by 막장로또 | 2008/10/28 15:59 | java프로그램밍 | 트랙백 | 덧글(1)

제 7주차 클래스 -생성자 (중간고사가 얼마 남지 않았네요 ㅠ.ㅠ)

생성자 

         -  생성자는 클래스로부터 객체가 생성될때 객체의 초기화 과정을 기술하는 특수한
             메소드로서 객체가 생성될때 무조건 생성된다. 
          - 생성자는 단 한번만 수행된다는 특징을 지니고 있다.
          
생성자 오버로딩

        - 같은 이름의 생성자를 여러개 정의살수 있는것을 말한다.
        - 인자(parameter)의 수나 인자의 데이터 형을 다르게 주어야 한다.. 
        - 특정 클래스의 객체를 다양한 형태로 초기화 하여 사용가능하다..  ----> 한가지로 여러가지를 표현 가능하다는건가...

Ex)         Character my box1 = new Character();
              Character my box1 = new Character(5);
              Character my box1 = new Character(5 , 10);    
              Character my box1 = new Character(5 , 10 , 15);


class Car4
{
    int velocity; //속도를 정수형으로 선언
    int wheelNum; //바퀴의 수를 정수형으로 선언
    String carName; // 차의 이름을 String 클래스로 선언

    //생성자. 문자열을 String 클래스로 받아서 저장.
    Car4(String name)
    {
        carName = name;
    }

    //초기값으로 속도를 주는 생성자.
    Car4(int speed)
    {
        velocity = speed;
    }

    //초기값으로 속도와 이름을 주는 생성자.
    public Car4(int speed,String name)  // 생성자
    {
        carName = name;
        velocity = speed;
    }

    public static void main(String args[])
    {
        Car4 myCar,yourCar,hisCar;
        
        //정의된 생성자 호출.
        myCar = new Car4("소나타");
        
        hisCar = new Car4(100);

        yourCar = new Car4(80,"라노스");

        // 제대로 생성자가 호출되었는지를 확인.
        System.out.println(myCar.carName + ":" + myCar.velocity);
        System.out.println(hisCar.carName + ":" +hisCar.velocity);
        System.out.println(yourCar.carName + ":" +yourCar.velocity);
    }
}


by 막장로또 | 2008/10/11 08:31 | java프로그램밍 | 트랙백 | 덧글(2)

7주차 수업내용 제4장 클래스

클래스 == 객체 생성

클래스는 객체를 생성하는 형판이다.

클래스는  Package와 Import를 제외하고는  class밖에서는 사용할수 없다.

클래스는 데이터와 메소드 2개의 요소로 구성된다.

변수는 만들어야 저장을 할수 있다.

void는 반환형이므로.. 생성자에서는 사용해서는 안된다.

참고) 객체 생성 및 참조 변수에 연결

객체 참조 변수 = new 클래스명();

Box 변수
class Box {
 int width;
 int height;
 int depth;

 public Box(int x, int y, int z){                    // 생성자
  width = x;
  height = y;
  depth = z;
     }
 public void GetB(){                                 //메소드 (= C언어로 따지면 함수이다.)
  int b;
  b = width * height * depth;
  System.out.println(b);
 }
}

class TwoBox {
 public static void main(String args[]){
  Box mybox1 = new Box(15, 33 , 71);     //   보조 클래스쪽 Box 생성자로 계산하기 위하여 그 값이 이동하게 된다.
  Box mybox2 = new Box(25, 78 , 46);
  mybox1.GetB();  // mybox1은 임의로 아무거나 설정하여도 관계 없다.
  mybox2.GetB(); // mybox1은 임의로 아무거나 설정하여도 관계 없다.
 }
}

생성자 메소드를 이용한 프로그램....
class Fruit{                                          // 보조 클래스
 int apple;
 int strawberry;
 int grape;
 int s;
 public Fruit(int x , int y , int z) {    // 생성자 
  apple = x;
  strawberry = y;
  grape = z;
 }
 public void sum(){                //메소드 (함수)
  s = apple + strawberry + grape;
  System.out.println(s);
 }
}

class Buy{                                               //메인 클래스
 public static void main(String args[]){
  Fruit f1 = new Fruit(100 , 200 , 300);
  Fruit f2 = f1;
  f1.sum();
  f2.sum();
  int Ts;
  Ts = f1.s + f2.s;
  System.out.println(Ts); 
 }
}
-----------------------------------------------------------------------------

class Box
{
 int a;
 int b;
 int c;
 long idNum;
 static long boxID = 0;
 public Box()
 {
  idNum = boxID++;
 }
 
}


class StaticDemo
{
 public static void main(String[] args)
 {
  Box mybox1 = new Box();
  Box mybox2 = new Box();
  Box mybox3 = new Box();
  Box mybox4 = new Box();
 
 System.out.println("mybox1의 id번호: "  + mybox1.idNum);
 System.out.println("mybox2의 id번호: "  + mybox2.idNum);
 System.out.println("mybox3의 id번호: "  + mybox3.idNum);
 System.out.println("mybox4의 id번호: "  + mybox4.idNum);
 System.out.println("전체 박스의 개수는 " + Box.boxID+ "입니다");
 }
}

by 막장로또 | 2008/10/07 15:52 | java프로그램밍 | 트랙백 | 덧글(0)

1주차 자바 프로그래밍 (수강신청이 늦게 신청하여 오늘 올립니다.)

제가 이 강좌를 신청한 이유는 프로그래밍이 부족하다는 생각이 많이 들어서 이 수업을 듣게 되었습니다.

프로그래밍에 대해서 잘 몰라서 기초적인 거라도 알기위해 PLD를 삭제하고 자바를 신청하게 되었습니다.

지금까지 수업은 정말 만족스러웠습니다.

사람들이 많이 햇갈려 하는것에 관하여 교수님께서 정말 잘 알려주셨고, 아무것도 모른다는 가정하에 설명을

해주셔서 많은 도움이 되었습니다.

다만 한가지 아쉬운점은 시간이 모잘라서 이론적으로 수업이 나가서 그런지, 실습시간이 많이 부족하다는것이

안타깝습니다.

프로그램은 코딩을 해봐야지 그것에 대하여 정확 하게 이해할수 있는데 그것이 시간이 촉박하니 안되는것 같습니다.

2학년 1학기때 TCP/IP 수업을 듣고 요번학기  PLD를 빼고 자바를 넣었지만.. 정말 뺀것이 아깝지 않은 수업인것 같습니다. ^^;

by 막장로또 | 2008/10/04 18:18 | java프로그램밍 | 트랙백 | 덧글(1)

6주차 예습 클래스에 대하여 정확히 알아보자.

○ 클래스의 구조

    예를 들어 메뚜기를 세 등분으로 나누다고 가정하자.  

    이것을 나누면 "머리, 가슴, 배"  이런 식으로 나타낸다.

        
    클래스도 마찬가지이다. 클래스도 크게 3가지로 "클래스 해더", "멤버 필드", "멤버 메소드" 로 나뉜다.

 

 1. 클래스 해더

     [접근한정자] [클래스 종류] class [클래스명] [기타]

     이렇게 구성되어 있다.

           

     접근한정자 : public, (생략) 두가지가 있다.

     클래스 종류 : final, abstract, (없음) 세가지가 있다.

     기타 : '상속에 대한 정의', '구현에 대한 정의' 가 올 수도 있다.

     EX)   Class Box{        , Class Field{ 

     즉 이 파일에 접근 하기 위한 파일명... 이라고 생각해도 될까나.. 
     확실히 잘 모르겠다.

 

  2. 멤버 필드

     변수와 상수를 뜻한다. static 과 instance 로 나눌수 있겠다.

     간단하게 설명하자면 static 은 C에서와 마찬가지로 다른 객체들과 공유된다. 
     즉 메모리에 하나만 올라간다.

 

   3. 클래스 변수
          
      클래스 변수는 static을 사용하여 선언한다. 클래스 변수는 전역변수의 개념을 가지고 있다. 
            
      객체 변수는 그 클래스부터 객체가 생성될 때마다 각 객체에 변수들이 생성되지만, 클래스 변
        
      수는 그 클래스로부터 생성된 모든 객체들이 하나의 클래스
            
      변수를 공유한다.   ------------> 이것을 확실하게 C에서의 전역 변수를 이야기 하는 건가??  
                                                     확실하게 잘 모르겠다;;

 

□ 접근한정자 종류와 의미 (클래스 헤더의 클래스)

 

   public : 어디에서도 접근 가능하다. ( 즉 모든곳에서 접근가능)

 

   final :  final은 서브 클래스를 가질수 없는 클래스를 말한다. 즉 final로 선언된 클래스는 

            새로운 클래스가 상속되어 생성될 수 없음을 말한다.

             -----------> 이것도 자세하게 잘 모르겠습니다. 수업듣고 확실하게
                                 이해하고 올려야겠다.

  abstract : 추상 클래스를 의미한다. 즉 뜻과 같이 객체를 생성할수 없는 클래스를 말한다. 

     

by 막장로또 | 2008/10/04 17:59 | java프로그램밍 | 트랙백 | 덧글(1)

◀ 이전 페이지 다음 페이지 ▶