복습


 static을 사용하면 객체를 만들지 않아도 메소드를 시행할 수 있다. 이 얘기는 메소드 자체를 클래스가 관할하는 영역에 만든다.

변수에 대한 얘기로는 변수가 존재하고 메소드가 존재한다. 그 변수를 멤버변수라고 한다.
클래스변수에 대해서 궁금한점이 생겨서 검색해 봤는데 static으로 선언된변수는 다른 메모리에 따로 잡히지 않고 객체간 공유가 된다고 한다. 이러한 이유로 상수에 대해서 메모리를 절약 한다고 한다.
sampleclass sc = new sampleclass();
sc라는것을 sampleclass형의 객체를 지시하는 이름으로 쓰겠다 하는 것이다. ( 지시하는 이름 - 변수)
'='은 '실체'할당/대입 실제로 존재하는 실체(값, 객체)이고 sampleclass는 reference형, 참조형 이다. new는 객체생성연산자, 생성자를 피연산자로 갖는다. 오른쪽은 객체가 와야 한다.

class Box {
    int width;
    int height;
    int depthl
    long idNum;
    static long boxID = 0;
    public Box(){
        idNum = boxID++;
  
  }
}
위의 클래스는 클래스를 만들고 하나의 객체를 생성할때마다 boxID값을 1씩 증가시키는 것이다. 처음엔 0으로 시작해서
1씩증가하는 후치연산의 형태를 갖추고 있다.

class Box{
 long idNum;
 static long boxID = 0;
 public Box(){
  idNum = boxID++;
 }
  
}

class StaticDemo{
 public static void main(String[] args)
 {
  Box box1 = new Box();
  Box box2 = new Box();
  Box box3 = new Box();
  Box box4 = new Box();
  System.out.println(box1.idNum);
  System.out.println(box2.idNum);
  System.out.println(box3.idNum);
  System.out.println(box4.idNum);
  System.out.println(Box.boxID);
 }
}

박스아이디와 아이디넘을 구하는 것이다. 박스아이디는 클래스에 걸려잇는 것이기 때문에 따로 하지 않고 클래스로 써준것이다.

by 노선미 | 2008/10/14 00:38 | 트랙백 | 덧글(1)

JAVA복습2

자바언어는 객체지향언어이다. 객체지향 언어의 개념과 대비되는 언어로서 절차지향 언어가 있다.

절차지향 언어는 프로그램 대부분 데이터를  변화시키는 알고리즘으로 구성된다.
이러한 언어들은 제이터와 그 데이터를 변화시키는 알고리즘이 분리된 형태를 취하고 있다. 따라서 프로그램을 작성하기
위해서는 모든 데이터 구조를 이해하고 있어야 하는 불편한 점이 있다.

객체지향 언어에서의 프로그램들은 개체들의 집합이다. 프로그램은 이러한 객체들을 생성하고
객체들간에 메시지를 통하여 정보를 교환함으로서 프로그래밍이 이루어진다.
객체지향 언어에서는 데이터와 그 데이터를 처리할 수 있는 메소드를 하나의 단위인 객체로 표현하고 있다.
객체지향이 기존의 절차지향에 비해 다음과 같은 장점을 가진다.
*문제를 쉽고 자연스럽게 모델링 할 수 있다.
*쉬운 프로그램의 개발로 인한 생산성을 행상시킬 수 있다.
*프로그램 모듈을 재사용할 수 있다.
*프로그램의 확장 및 유지 보수가 용이하다.

객체 - 효율적으로 정보를 관리하기 위하여 사람들이 의미를 부여하고 분류하는 논리적인 단위이다.
         2가지로 나눈데 하나는 자신의 속성을 나타내는 데이터이고, 또 하나는 그 데이터를 조작 처리하는 절차를 
         기술하고 있는 메소드 이다.

클래스 - 객체 지향에서는 동일한 속성과 메소드를 가진 객체를 생성하기 위해 클래스하는 형판을 제공하고 있다. 
            즉 클래스는 하나의 클래스로부터 여러 개의 객체를 생성하기 위해 사용하는 형판 즉, 틀이라 생각하면 된다.
            객체와 클래스는 다른 개념이다. 객체는 데이터와 메소드를 가지고, 클래스는 데이터 구조 즉 속성과 메소드를 
            가지는 것이 일반적이다.

상속 -  클래스들 사이의 상속은 소프트웨어 설계를 간단하게 할 수 있는 이 점을 제공한다.즉 기존의 클래스로부터 모든 요소를 
          상속받고 새로운 클래스에는 추가되는 자료구조와 메소드만 지정하면 된다. 상속의 새념은 코드를 간결하게 하고, 코드의
          재사용성을 높이는 요인이 된다.
          클래스의 상속은 일반적으로 하나의 클래스로부터 상속되는 것이 일반적이지만, 다수개의 클래스로부터 상속받아 새로운 
          클래스를 생성하는 경우도 있다. 이를 다중상속이라 한다.

캡슐화 - 캡슐화는 우리가 감기에 걸렸을 먹는 캡슈약과 같은 개념을 가지고 있다. 우리가 감기에 걸려 먹는 캡슐 약에는 많은 성분
             이 포함되어 있지만, 우리는 그 캡슐이 단순히 감기를 낳게 해 준다고 생각하면 먹고있다. 객체는 데이터와 데이터를 처리
            하는 메소드를 가지고 있다. 객체를 사용하는 쪽에서는 그 객체의 단순한 기능만 알면 충분히 그 객체를 사용할 수 있다.
            객체가 실제 데이터를 어떻게 처리하는지는 알 필요도 없다. 이러한 개념이 캡슐화다.
            캡슐화를 통한 정보의 은페는 다음과 같은 장점을 제공한다.
            *객체에 포함된 저보의 송사과 오용을 막을 수 있다.
            *객체 내부의 조작 방법이 바뀌어도 사용방법은 바뀌지 않는다.
            *데이터가 바뀌어도 다른 객체에 영향을 주지 않아 독립성이 유지된다.
            *처리된 결과만 사용하므로 객체의 이식성이 좋다.
            *객체를 부품화 할 수 있어 새로운 시스템의 구성의 부품처럼 사용할 수 있다.

메시지 - 메시지는 객체에게 일을 시키는 행위라 할 수 있다. 프로그램에서 생성된 객체들은 이러한 메세지를 주고받음으로서
            일을 수행한다. 프로그램 작성자는 사용하고자 하는 객체를 정의한 다음 이러한 객체들이 어떤 일을 수행해야 하는지를 
            메시지로 기술해야 한다. 일반적으로 메시지에는 메시지를 박을 객체의 이름,메소드 이름,메소드의 수향에 필요한 인자들
            을 포함된다.

다형성 - 다형성은 객체지향의 중요한 개념 중에 하나로서 , 다행한 변신을 의마하는 그리스어에 기원을 두고 있다.객체지향은 
            우리 현실과 같은 개념이며 다형성 역시 우리 현실에서 많이 찾아볼 수 있다. 객체지향 언어에서 의미하는 다형성은 
             서로 다른 객체가 동일한 메시지에 대하여 서로 다른 방법으로 응답할 수 있는 기능 의마로 정의할수있다.

              

class A {
 
 int i=3;
 void f() {
System.out.println("나는 A의 객체입니다.");
 }
}

class Ex {
 public static void main(String args[]){
A a = new A();
a.f();
}
}


 학생1(객체이름) = new(객체생성 명령어)  학생(클래스이름)


 

by 노선미 | 2008/09/09 14:50 | JAVA | 트랙백 | 덧글(2)

JAVA 복습1

대문자로 쓰는이유는 예약어랑 겹치기 떄문에..
_되고 -는 안됨 숫자도 No

자바의 특징
-객체지향적이다.(캡슐화,다형성,상속성)
-단순하다.

JAVA프로그램 확장자는 .java 이다.
JAVA컴파일러는 javac 이다.
JAVA 메인메소드는 꼭 있어야하면 선언은 public static void main(String args[])


String 은 한글문자(이바이트) = ex)String a = "노선미"

by 노선미 | 2008/09/03 12:23 | JAVA | 트랙백 | 덧글(1)

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