Home Map Index Search News Archives Links About LF
[Top Bar]
[Bottom
Bar]
[Photo of the Author] 
Jose M. Fern�ndez  

���ڿ��� �����ϱ� 
����
�ڷ���, ����, ������ 
��� 
Ŭ����, �޼ҵ�, ���  

Java. �ι�°

[Ilustration]

���: �� ���� ����� ������ ���α׷��ֿ� ���� �������� å�� ������� �Ѵ�. ù ��° ������� �ڹ� ����� Ư���� ���� ������ �Ұ��� �߰�, �̹����� �ڷ���, ����, ��� ���� ����ؼ� �����Ϸ��� �Ѵ�. ���⿡�� Ŭ����(class)��� ����� �߿��� ������ �ִ�. Ŭ������ ������ �ڹ� ���α׷� ����� �ٽ��� �ȴ�. To center the classes topic, the first part will be as ESQUEMATICA�? as possible, due to the similarity to the rest of the programming languages.


�������� ����

������� �����ϸ�, �ڹ� ���α׷��� �ּ�(comments), �ĺ���(identifiers), ���(literals), ������(separators), ����(blank spaces), �ٽɾ�(key words)�� �� �����ȴ�. �����Ϸ��� ������ �������� �ۼ��� �ڵ带 �޾Ƶ鿩 �ƽ�Ű(ASCII) �ڵ�μ� ��Ʈ���� 8 ���� 16 ���� Ȯ���ϰ�, ���� ��ƾ� �ƴ� ���ڵ鿡 ��ġ�ϴ� Ű�� ���̺�(keymap table)�� ������. ����, ��(tabs), ij���� ����(carriage returns)�� �ɺ� ����(symbol set)�� ������ �ʱ� ������ �����Ϸ��� ���� ���ŵȴ�. �� ������ �ڹ� ���α׷��� �����ο� ������� �ۼ��� �� �ִ�.

�ڹ� �ּ��� ������ �� ���� ��� ���� �ϳ��� �� �ִ�:

     //comments
// ���ĺ��� �� �� ������ ���ڵ��� ���õȴ�.
     /* comment */
/* �� */ ������ ��� ���ڵ��� ���õȴ�. �� �ּ��� ���� �ٿ� ���� ����� �� �ִ�.
     /** comment **/
/* */ �ּ��� ����������, ���� ���������� ���Ǿ�����. javadoc ������ �̰��� ����Ͽ� �ڵ������� ������ �����ϱ� �����̴�.

�ĺ��ڴ� �����Ϸ��� �װ͵��� �ĺ��ϵ��� ����, Ŭ����, �޼ҵ�(method)�� �־��� �̸��̴�. ���ĺ� ����, ����, ����, �޷� ��ȣ�� � ���ڿ��� ����� �� �ִ�.  ���ڷ� �����ؼ��� �� �ȴ�.

�ڹٴ� �����ڷμ� �� ���� Ư���� ���ڸ� ����Ѵ�. ���� ���� ���̴� ���� ; ������������, ���� ������ �� �˾� ����:

��ȣ �ؼ�
() �޼ҵ� ���ǿ� ȣ�� �� �Ű����� ����� �����Ѵ�. ���� ǥ���� �켱 ����(expressions precedence)�� �����ϱ� ���� ���ȴ�. Ȥ��, ���� ����� �ڷ��� ��ȯ���� ǥ������ �����Ѵ�.
{} �ڵ������� �ʱ�ȭ�Ǵ� �迭(vector)�� ������ �����Ѵ�. �ڵ� ����(code block)�� �����Ѵ�. Ŭ����, �޼ҵ�, ���� ����(local scope)�� �Բ� ���ȴ�.
[] ��Ʈ����(matrix) �ڷ����� �����Ѵ�. ��Ʈ������ �ִ� ���� �����Ѵ�.
; ���� ������.
, ���� ���𿡼� �������� �ĺ��ڵ�� �����Ѵ�. for ������ ������� �����Ѵ�.
. ��Ű��(package), ���� ��Ű��, Ŭ���� ��Ī�� �����Ѵ�. ������ �����κ��� ���� �Ǵ� �޼ҵ带 �����Ѵ�.

�ٽɾ�� �ڹ� ���� ���Ǿ����� �ĺ����̸� �ڹٿ� ���� ���ǵ� �ٿ� �ٸ��� ���� �� ����. ���� ǥ�� �ڹ� �ٽɾ���� ���δ�:
 

abstract double int super
boolean else interface switch
break extends long synchronized
byte false native this
byvalue final new threadsafe
case finally null throw
catch float package transient
char for private true
class goto protected try
const if public void
continue implements return while
default import short  
do instanceof static  

�ڷ���, ����, ������.

�� �������� �ڹ� ���� �����ϰ� �ڷ����� �����ϴ� ����� �����Ϸ��� �Ѵ�. �� ������ �ڷ����� ������ �� �ڷ����� �IJ��ϰ� ���ǵȴ�. ��� ���Թ��� �ڷ��� ȣȯ���� ��Ȯ�ϰ� �Ǵ� �޼ҵ� ȣ�⿡�� �Ű����� ��ȯ�� ���� �˻�ȴ�. �ڷ��� ȣȯ���� �����ϱ� ���Ͽ� �����Ϸ��� ��� ǥ���� �Ű������� �����Ѵ�.

���� ������� �ڹٴ� �����ϰ� ��ü�������̶�� ����ߴ�. �׷����� �ұ��ϰ�, ȿ������ �����ؼ�, �ڹٴ� ��ü�� �ƴ� "�ܼ���" �ڷ��� ���� ���� �����Ѵ�. �Դٰ�, �̽ļ��� ������, ��� �ڷ����� �����ϰ� ���ǵ� ������ ������.

�ܼ� �ڷ����� �� ���� ���� ������ �� �ִ�:

�ڷ��� ��Ī ũ�� ����
���� long 64 -9,223,372,036,854,775,808 

9,223,372,036,854,775,807
int 32 -2,147,483,648 

2,147,483,647
short 16 -32,768 ~ 37,767
byte 8 -128 ~ 127
�Ǽ� float 32 3.4 e-038 a 3.4 e+038
double 64 1.7 e-308 a 1.7 e+308
���� char 16 Unicode
�ο︰ boolean   true �Ǵ� false

����:

������ �ĺ��ڿ� �ڷ����� ���� ���ǵȴ�. ����������, ������ �����ϰ� ���ÿ� �ʱ�ȭ �� �� �ִ�. � �������� ����(scope)�� ���Ѽ�(lifetime)�� ������. �Դٰ�, ������ �ݵ�� ���DZ� ���� ���ǵǾ�� �Ѵ�. ���α׷� ���� � ��������, ������� ���ʷ� ���Ǵ� ���ÿ� ����� �� �ִ�.

�Ϲ�������, ������ �̷� ������� ����ȴ�:
 

identifier type [=value] [,identifier [=value]......];

            
���⼭, "type"�� �⺻���� �ڹ� �ڷ����̰ų� Ŭ����, �������̽�(interface)�� �� �� �ִ�. ���� ������ �ʱ�ȭ �Ѵٸ�, �װ��� ǥ������ �ݵ�� ���� ���𿡼� ������ �Ͱ� ��ġ�ϴ� ������ �ڷ����̰ų� ȣȯ���� �ִ� �ڷ����̾�� �Ѵ�.

��:
 

int  a = 4, b, c=7;

char c;

myclass class;

            
�밳, ������ �� ���� ���ο��� ���ǵǸ� �ܺο��� �ڵ忡 ���� ������ �Ұ����ϴ� ({} �߰�ȣ ������ �ڵ� �κ��� �������� �����Ѵ�). �ϴ� �������κ��� ����� ������ �������� �� �̻� �������� �ʴ´�.

��κ��� ���α׷��� ������ �� ������ ���� ���ָ� �����Ѵ�. ����(global)�� ����(local)�� �װ��̴�. �׷��� �̴� �ڹ� ��ü ������ �𵨿� �������� �ʴ�. �� �𵨿� �����ؼ�, �� ���� �ֿ� ������ Ŭ������ �޼ҵ忡 ���� ���ǵǴ� ���̴�.

�ڷ��� ��ȯ:

��� �̷������δ� ������ ������, �ڹٴ� ������ �ڷ����� ���� �� �ٸ� �ڷ����� ������ ������ �� �ִ�. ���� �� �ڷ������� ȣȯ �����ϴٸ� �ڵ�ȭ�� ��ȯ�� ����ǰ�, ���� �ƴ϶� �ص�, ȣȯ���� ���� �ڷ����� ���� �������� �ڷ��� ��ȯ�� ���ϴ� ���� �󸶵��� �����ϴ�. �ڷ����� �ڵ����� ��ȯ�� �����ϱ� ���ؼ��� ������ �ʿ�� �Ѵ�: ���� ���, int ���� byte ���� ������ ��ŭ ����� Ŀ�� �Ѵ�. �׷��� �������� ��ȯ�� �ʿ�� ���� �ʴ´�. ���� ���� char �� �Ǵ� boolean ���� ȣȯ���� �ʴ´�. �Ӹ� �ƴ϶� boolean ���� �ٸ� ������ �ڷ������ ���� ȣȯ���� �ʴ´�. int ���� byte ���� �����ϰ� �ʹٸ�, ������ ���� ���Ŀ� ���� �������� ��ȯ�� ����Ͽ��� �Ѵ�:
 
(type) value

���⼭, type�� �ڷ��� ��ȯ ����� ��Ÿ����. ��:
 

int a;

char b;

a=(int) b;

            

�ڵ�ȭ�� �� ��ȯ�� ������ ����� �ʷ��ϱ� ������ �ݵ�� �����ؾ� �Ѵ�. ���� ���:

�ε� �Ҽ� ���� ���� ������ ��ȯ�� ��, �Ҽ��� ���ϰ� ���õȴ�:
 

int a;

double d= 125.43;

a=(int) d;
������ ������ 125.�� ������ 
byte   b;

int i=257; 

b=(byte) i;

            
b�� ������ 1�� �����µ�, 256�� byte ���� ������ ��쿡 257�� 256���� ���� ����κ��� ���� ���̴�. 
byte b;

double d= 340.123;

b=(byte) d;
b�� 84�� ���� ������ �ȴ�  

�̷� ��� ��ȯ�� �����Ϸ��� ���������ͷ� ����ȴ�. � ������ ������ ã�Ƴ��� ���Ѵٸ� ���̴�.

������:

�� �η��� ���� �� �ִ� �پ��� ������ �����ڵ��� �ִ�: ���, ��Ʈ ����, ����, ����. �Ϲ�������, �ٸ� ������ �����ϰ� �ۿ�������, �ټ� ���̰� �ֱ�� �ϴ�. �� �������� ���⼭ �ٷ���� �Ѵ�.
��� ������:
������ �ؼ�
+ ���ϱ�
- ����
* ���ϱ�
/ ������
% ������
++ ����
+= ���ϰ� ����
-= ���� ����
*= ���ϰ� ����
/= ������ ����
%= �������� ���ϰ� ����
-- ����

������ �����ڴ� ������ �ε� �Ҽ��� �� ���ʿ� ����� �� �ִ�. ���� ���:

int a=38;

double d=41.95;

int c=a%10;

double  e=d%10;

c ������ 8�� �ȴ�. e ������ 1.95�� ������.

���� �����ڵ��� ������ ���� ������ �����ϴ�:

a = a + 4; �� a+=4; �� ����

a = a % 2; �� a%=2; �� ����

����, ������ ���� ���� �� �ִ�:

var = var op expression; �� var op= expression; �� ġȯ�� �� �ִ�.

��Ʈ ���� ������:
����, long ��, int ��, short ��, char ��, byte ���� ����Ǿ� �ǿ����� ��Ʈ�� �����ϴ� ��Ʈ ���� �����ڰ� �� �� ���ǵǾ� �ִ�.
 
������ �ؼ�
~ ��Ʈ ������ ���� NOT
& ��Ʈ ������ AND
| ��Ʈ ������ OR
^ ��Ʈ ������ ��Ÿ�� OR
>> ���� ����Ʈ
>>> 0���� ä������ ���� ����Ʈ
<< ���� ����Ʈ
&= ��Ʈ ������ AND�� ����
|= ��Ʈ ������ OR�� ����
^= ��Ʈ ������ ��Ÿ�� OR�� ����
>>= ���� ����Ʈ�� ����
>>>= 0���� ä������ ���� ����Ʈ�� ����
<<= ���� ����Ʈ�� ����
���� ������:
�� ���� �ǿ����� ���� ���踦 �����Ѵ�. �� �� �ϳ��� �������� ������, �ƴϸ� ū�� �Ǵ� ������ ���θ� Ư���� �˻��Ѵ�. ����� �ο︰ ���̴�.
 
������ �ؼ�
== �� ����
!= �� �ٸ� 
> ���� ū
< ���� ����
>= ���ų� ���� ū
<= ���ų� ���� ����

�ٸ� ����(C/C++)���� �޸�, boolean ������ True�� False�̴�. ��, �̰͵��� ��ġ�� �ƴϴ�..

���� ������:
�ο︰ ������ ��쿡�� �ۿ��Ͽ� �� �ٸ� �ο︰ ������ ����� ����.
 
������ �ؼ�
& ������ AND 
| ������ OR 
^ ������ XOR(��Ÿ�� OR)
|| ���� OR
&& ���� AND
! ���� ������ NOT
&= AND ����
|= OR ����
^= XOR ����
== �� ����
!= �� ���� ����
?: ���� If-then-else

OR ���� �������� ����� ������ ����: �� ��° �������� ���� ����Ǿ����� ���� ù ��° �����ڰ� ���̸� ���̴�. ����������, AND ���� �����ڴ� �� ��° �������� ���� ������� ù ��° �����ڰ� �����̸� �����̴�.

���� �������� �Ϲ����� �����̴�:

Expession1 ? expession2 : expression3

���� Expression1�� ���̸�, expresion2�� ����ǰ�; ���� �����̸�, expression3�� ����ȴ�.

���� �켱 ����:

���� ��
( ) [ ] .  
++ -- ~ !
* / %  
+ -    
>> >>>> <<  
> >= < <=
= = !=    
&      
'      
|      
&&      
||      
?:      
= Op=    
���� ��

�帧 ���� ����

�� ���� �η��� ���� �� �ִµ� ����(Selection), �ݺ�(Iteration), �б�(Jump)�� �װ��̴�.
 
���� ���� �ؼ�
���� if
if ( condition ) 

  sentence1;

else 

  sentence2; 
  ���� if��
If (condition ) 

  sentence;

else if (condition) 

  sentence;

else if (condition) 

  sentence;

.

.

else 

  sentence;
  switch
switch (expression){

  case value1:

    sentence;

    break;

  case value2:

    sentence;

    break;

    .

    ...

  default :

    sentence;

}
�ݺ� while
while (condition) {

  sentence;

}
  do while
do {

  sentences;

} while (condition)
  for
for (initialization, condition, iteration) {

              

  sentences;

}
�б� break switch�κ��� ����. 

loop��� ����

  continue �� loop �ݺ����κ��� ���� �������� ������ loop�� ����Ѵ�
  return �޼ҵ�κ��� ��Ȯ�ϰ� �����Ѵ�

Ŭ����, �޼ҵ�, ���

���� ������� ����� �ٴ��, �ڹٴ� ���ʺ��� ����� ����̴�. �̴� ��ü ���� ���α׷��� �� ������̰� �и��ϰ� �����ϰ� ������ �� ���� ������ �ȴ�. �� ���, ��� �ڹ� ���α׷��� ��ü �������̴�. �� ���� ������� �������� ��ü ���� ���α׷��� ������ �߰����� ���Ѵٴ� ���� �����ؾ߸� �Ѵ�. �׷� ������ ���ؼ� �������� ���ʺ��� ���õ� ���� ���α׷��ֿ� �̸������ ���� �з��� ���带 ã�� �� �ִ�. OOP (��ü ���� ���α׷���)�� �ڹٿ��� �ſ� �ٺ��� �DZ� ������,  �������� ���� ���α׷� �ۼ��� �����ϱ� ���� �� �����Ͽ��� �Ѵ�. ��� �׻� �ڹ� �� ������, �ִ� �ֱ��� ������� �ڹٸ� ������ ��ü ���� ���� ����� ��Ҹ� �����ϰ��� ����� ��������, �� �з������� � �⺻���� ��Ҹ� ����ϰ� �ٷ�⵵ �ؾ� �Ѵ�.

Ŭ����:

�ڹ� Ŀ��(kernel)�̴�. ��ü�� ����� ������ �����ϰ�, ��ü ������ ���α׷����� ���ʸ� ����Ѵ�. ���ο� �ڷ� ���� Ŭ������ ���� ���ǵDZ⵵ �ϰ�, �̷� ���ο� �ڷ����� ��ü�� �����ϴµ� ������ ���� �ִ�.

Ŭ������ ��ü�� ���� �� (����)�̰�, ��ü�� Ŭ������ �ν��Ͻ�(instance)�̴�. �ڹٴ� ���� �Լ� �Ǵ� ������ �������� �ʾ�, ��� ���α׷� Ȱ��(actions) (�޼ҵ�)�� �ݵ�� Ŭ���� ������ ���ǵǾ�� �Ѵ�.

Ŭ������ ����� "class"�� ����Ͽ� ���ǵȴ�. ������ Ŭ���� ���Ǵ� ������ ����:
 

class class_name {

  Type instance1_of_variable;

  Type instance2_of_variable;

  .

  .

  ...

  type instance_variable;

  type method_name(parameter_list){

    //body of the method

  }

  .

  .

  ..

  type name_of_the_method(parameter_list){





    //body of the method

  }

}

Ŭ���� ������ ���� �Ǵ� �����͸� �ν��Ͻ� ����(variables of instances)��� �θ���. �޼ҵ�� �ڵ带 �����ϰ�, Ŭ������ �����Ͱ� ��� ���� �� �ִ��� �����Ѵ�.

Ŭ������ ��ü�� ��� ���ؼ� �� �ܰ谡 �ʿ��ϴ�:

    Ŭ���� �ڷ����� ������ ������ ��. �� ������ ��ü�� �����ϴ� ���� �ƴϰ�, ��ü�� �����ϴ� �� ��� ������ ������ ���̴�.

    ��ü�� �������� �޸𸮸� �Ҵ��ϰ� �װ��� ������ ���� ��.

�� �� ��° �ܰ�� new �����ڸ� ����Ͽ� ��������. �װ��� �Ϲ����� ������ ������ �ִ�:
 
            

variable = new name_of_the_class();

���⼭, "variable"�� �����Ϸ��� Ŭ������ �����̰�, name_of_the_class�� �ν��Ͻ��� �Ǵ� Ŭ������ ��Ī�̴�. ��ü�� ������ �׸����� ǥ���Ѵٸ� ������ ����:

�޼ҵ�:

�޼ҵ��� �Ϲ����� ������ �̷���:
 
type name_of_the_method (parameter_list) {



  //method_body

}

"type"�� �޼ҵ忡 ���� ���ϵǴ� �ڷ����̴�; Ŭ���� ���� �����Ͽ� � ��ȿ�� �ڷ����̶� �����ϴ�. Ȥ��, � ���� �������� ���� ���� �ִ�(void).

�Ű����� ���(parameter list)�� �ڷ���-�ĺ��ڰ� ������ ���ӵ� ���ε� ��ǥ�� ���еȴ�.(������: ���� ���������� �ݷ����� �����Ѵٰ� �Ǿ� ������, �ڹ� ��� ������ �����Ͽ� ��ǥ�� �ٲپ� �ٷ� ����.) �Ű������� �޼ҵ忡 �־��� ������ ���� �޴� �����̴�. �޼ҵ尡 �Ű������� ������ �ʴ´ٸ�, ����� ��� ���� ���̴�.

"void"�� �ƴ� ���� �����ϴ� �޼ҵ� ����:

            

return value;

���⼭ value�� ���ϵǴ� ���̴�.

�ڹٴ� �ſ� ���� �޼ҵ带 �����ϴµ� ��ô �ٷ�� ���� �����ϴ�. �׷��� ���⼭���� �̹� ����� ������, �޼ҵ��� �ſ� �߿��� ������ ���� ������ �Ѵ�.

�׷�����, �׷��⿡ �ռ�, ������ ���μ� ������ ������ �ٽ� ������ ����.

(Ǯ�� ����) �簢�� ����� ������ �뷮�� ����ϴ� Ŭ������ ��������:
 

�ڵ� �ּ�
class capacity {

    double length;

    double width;

    double height;

    void CalcVolume () {

        double volume ;

        volume = length*width*height;

        System.out.println("Volume: " +

                           volume);

    }

}
�������� �� �� �ֵ���, �� ���� �ν��Ͻ� ���� length, width, height�� �����ϴ� "capacity"��� �̸��� Ŭ������ �����ߴ�. ���� �׸� ���Ǹ� ����ϴ� �޼ҵ带 �����ߴ�. �ҽ� ������ �̸��� capacity.java��� �θ� ���̴�. �װ��� �������ϸ�, capacity.class Ŭ����(����)�� ���� ���̴�.

�� Ŭ������ ���������� ��� �۵��� ���� �� ������, ���ø��� ����, ���ɾ� ��(command line)���κ��� ����Ǵ� main() �޼ҵ带 ������ �ʴ´�. �� Ŭ������ ��ü (�ν��Ͻ�)�� ������ �� �ִ� ���ø�(template)�� ������ ���̴�. �� ������ �̷�� ����, ���ɾ� �����κ��� ����� �� �ִ� Ŭ������ �����Ϸ��� �Ѵ�.

�ڵ� �ּ�
class example {

  public static void main(String Arg[]){  

    capacity p1=new capacity();

    capacity p2=new capacity();

    p1.length = 16;

    p1.width=3;

    p1.height=2;



     //

    p2.length = 25;

    p2.width=6;

    p2.height=3;



    //

    p1.CalcVolume();



    //

    p2.CalcVolume();



  }



}  

            
capacity ���� ������ �� �� ���ǵȴ�. p1, p2�� �װ��̴�. new �����ڷ� capacity ���� ��ü�� �� �� �����ϸ�, p1, p2 ������ ���� ��ü���� ������ �� �ִ�. 

��������, ������ ��ü�� ���� ������ ���� �����Ѵ�. 

p1���� ������ ��ü�� CalcVolume() �޼ҵ带 ȣ���Ѵ�. �׷���, �����

"Volume: 96"�� ȭ�鿡 ��������. 

p2�� ������ ��ü�� ������ �������,  

"Volume: 450"�� ȭ�鿡 ��������.

p1.CalcVolume()�� ����Ǵ� ���, �ڹ� �ؼ��Ⱑ CalcVolume() ���� ���ǵ� �ڵ��� ��� ������. �ϴ� ��� ���� ������� ����Ǹ� ȣ���� ��ƾ�� �����ϰ� ������ ȣ���� �ٷ� ���� �࿡�� ��ӵȴ�.

�Ű������� ���� �޼ҵ�. �� ����.

�޼ҵ��� ��ټ��� �޼ҵ带 �Ϲ�ȭ�ϵ��� ����ϴ� �Ű������� �Բ� ���ȴ�. �Դٰ�, �޼ҵ�� ���� ������ �� �ִ�, �׷��� ������ ��Ȳ������ ���� �� �ִ�, �پ��� �����Ϳ� �Բ� �۵� ������ �޼ҵ带 ���� �� �ִ�.

���� ������ ��������:
 

�ڵ� �ּ�
class capacity {

  double CalcVolume (double l, 

                     double a,

                     double p) {

    double volume=l*a*p ;

    return volume;

  }

} 
CalcVolume �޼ҵ�� �� ���� �Ű������� �����ϵ��� �����Ǿ���. ���� double ���� �����ϵ��� ���ǵǾ���. �� �۵��� return volume ���ɿ� ���� ����ȴ�.
class example {

  public static void main(String Arg[]){  

    capacity p1 = new capacity();

    capacity p2 = new capacity();



    double vol;



    vol=p1.CalcVolume(10,3,2);



    System.out.println("Volume: " + vol);  



    //



    vol=p2.CalcVolume(25,5,2);



    System.out.println("Volume: " + vol);  

  }

} 

            
�޼ҵ��� ȣ���� ���ϴ� �Ű������� �����Ͽ� ��������. vol ������ �޼ҵ��� ���� �����ϴµ�, ������ �޼ҵ�� ������ ���̾�� �Ѵ�.

Ŭ������ �ֿ��� ������ ������(constructors)�̴�. Ŭ������ ��ü�� ������ ��, �� �׸���� � �ϵ��� �Ͼ�°��� �����Ѵ�. �̵��� ��κ��� Ŭ���� ���� ���� �ڽ��� �����ڸ� ���������� �����Ѵ�. ���� ���ǵ��� ������, (���� ������ ����) �ڹٴ� �⺻ ������(default constructor)�� ����Ѵ�.

Ŭ������ ���Ե� �����ڴ� ��Ȯ�ϰ� Ŭ������ ������ ��Ī�� ������. ���� �������� �޼ҵ��� �װͰ� �����ϴ�. ��ü�� ������ �Ŀ� new �����ڰ� ����DZ� ���� �����ڴ� �ڵ������� ����ȴ�.

�����ڴ� � �ڷ����� ������ �ʴ´�. ���������� Ŭ������ ���� �����ϱ� �����̴�. �����ڴ� ��� ��ü ������ �ʱ�ȭ�� ����ȴ�. �׷���, ��ü�� �ν��Ͻ��� �����ϴ� �ڵ�� �װ��� �̿��ϴ� �غ�� ��ü�� ������. ������, �ν��Ͻ� ������ �����ڿ� ���� �ʱ�ȭ�ȴ�. �̴� �޼ҵ�� �Բ� �̷����� ������, �����ڴ� �װ͵��� ���� �����ϰ� ����� �Ű������� ���� �� �ִ� . �� ��� ���ο� ������ �����ϱ� ���� ���� ������ �����ϵ��� ����.
 

�ڵ� �ּ�
class capacity {

  double length;

  double width;

  double height;



  //

  capacity(double l, 

           double a, 

           double p){  

    length=l;

    width=a;

    height=p;

  }



  //

  void CalcVolume () {

    double volume ;

    volume=large*wide*high;

    return volume;

  }

} 

            
�����ڰ� Ŭ������ �߰��Ǵµ�, Ŭ������ ������ ��Ī�� �������� � �ڷ����� �������� �ʴ� �޼ҵ��� �ϸ��� ���δ�. �� �����ڴ� ������ ���ڷ� ����� ������ �ν��Ͻ��� �ʱ�ȭ�Ѵ�.
class example {

  public static void main(String Arg[]) {  

    capacity p1=new capacity(10,5,2);

    capacity p2=new capacity(25,6,2);

    double vol;

    vol=p1.CalcVolume();

    System.out.println("Volume: " + vol);  



    //

    vol=p2.CalcVolume();

    System.out.println("Volume: " + vol);  

  }

} 
new �����ڴ� Ŭ������ �ν��Ͻ��� �����Ѵ�. �� Ŭ������ ���������� �ʿ��� �Ű������� ���Ѵ�.

���� ��ü�� ���� � ������ �������� �ʴ´ٸ�, �� ��ü�� �� �̻� ���� �� ���ٰ� �����Ǿ�, �Ҵ�� �޸𸮰� �����ȴ�. �� ó���� ���α׷� ������ ���� �ڵ�ȭ�� ������� ����DZ� ������ ���������� ��ü�� �ı�(destroy)�� �ʿ䰡 ����.

�׷����� �ұ��ϰ�, Ŭ������ �Ҹ���(finisher)�� �����̱� ���� �޼ҵ� "finalize()"�� ���ȴ�. �ؼ��Ⱑ ��ü�� �ı��� �� �� �޼ҵ尡 ����ȴ�. �� �޼ҵ忡, ��ü�� �ı��ϱ� ���� ����Ǿ����� �۵��� ���Խ�ų ���̴�.

�޼ҵ� ��ø(method overload).

������(�ϳ��� �������̽��� ���� �ټ��� �޼ҵ�)�� ��ü ���� ���α׷��ֿ��� �⺻���� �ٽ�(PILLARS )�� �ϳ��̴�. �ڹٴ� �޼ҵ� ��ø�� ���� �������� �����Ѵ�.

������ ��Ī�� ������ ������ �޼ҵ���� Ŭ���� ������ ���ǵ� �� ������, �װ͵��� ������ �Ű����� ��� �Ǵ� �ּ��� ������ ���� �ڷ����� �ݵ�� ������ �Ѵ�. ��ø�� �޼ҵ尡 ȣ��� �� ���Ǿ����� �޼ҵ��� ������ �����ϱ� ���Ͽ� �ڹ� �ؼ���� �ڷ��� �� ȣ��� �Բ� ���޵� ���ڵ��� ����Ѵ�.

��� �������� ������ �Ұ����ϵ��� ��������, ��ø�� �޼ҵ��� �� ������ ������ �½�ũ(task)�� ������ �� �ִ�. �׷��� �� �� ������ �޼ҵ� ��ø�� � ���踦 �Ͻ��� �� �־�� �Ѵ�. �޼ҵ尡 ��ø�Ǿ����� �Ͱ� ������ ������� �����ڵ� ��ø�� �� �ִ�.

���� ����.

�Ϲ�������, ���α׷��� ���� ���ڸ� �����ϱ� ���� �� ���� ����� ����Ѵ�:

�ڹٴ� �޼ҵ忡 ���ڸ� �����ϴ� �� �� ���� ����� �����Ѵ�. ���� ���ڰ� �ܼ� �ڷ����̶��, ���� ���� ���޵�����, ���ڰ� ��ü�� ��쿡 ������ ���� ���޵ȴ�.

���� ����.

��ü ���� ���α׷��ֿ��� �� �ٸ� �⺻���� �ٽ��� ĸ��ȭ(ENCAPSULATION)�̴�. �̰��� �����Ͱ� �ڵ�� �����ȴٴ� ���� �ǹ��Ѵ�. ������, ĸ��ȭ�� ���� ������ �����Ѵ�. �ٽ� ���ؼ�, ���α׷��� �Ϻδ� Ŭ������ ���(member)�� ������ �� �ִ�.

�ڹٿ��� ���� ������ 'public', 'private', 'protected'�̴�.

�޼ҵ� �Ǵ� �ν��Ͻ�-������ 'public'���� ���ǵ� ��, ���α׷��� � �κ����κ��͵� ������ �����ϴ�. ���� 'private'���� ���ǵȴٸ�, Ŭ���� ��ü�� �ٸ� �޼ҵ忡 ���ؼ��� ������ �����ϴ�. �⺻������ ��� �޼ҵ� �Ǵ� �ν��Ͻ�-�������� (�� �ڽ��� ���� ��Ű����) 'public'�̴�.

'protected' �����ڴ� ��Ӱ� �Բ� �ۿ��� �� ���ȴ�. ����� ���� �� �����̴�.

���(INHERITANCE).

��ü ���� ���α׷����� �����ϴ� �� ���� ��Ҵ� ������, ĸ��ȭ, �׸��� �� ���������� ����̴�. �Ϲ����� Ŭ����(superclass)�� ����� ���� ���ǵȴ�. �� �Ѱ����� Ŭ������ ������ Ư���� �������ν� �ٸ� ���� ��ü���� Ŭ������ ����, �� ������ �ٸ� Ư���� Ư���� �߰��Ͽ� ��ӵ� �� �ִ�.

A ���� Ŭ����(superclass)�� Ư���� ����ϴ� Ŭ������ B�� ����� ���� B ���Ǹ� ���δ�:
 

class B extends A {

    // class definition

}

Ŭ���� B�� A ���� Ŭ������ ��� ����� �����ϴµ�, ���ڴ� �����Ӱ� ���Ǵ� ����(AUTONOMOUS) Ŭ������ �� �ִ�. ����, Ŭ���� B�� � �ٸ� Ŭ������ ���� Ŭ������ �� �� �ִ�.

�ڹٴ� ������ ���� Ŭ������κ��� �ϳ��� ���� Ŭ����(subclass)�� ����� ���� ���(multiple inheritance)�� ������� �ʴ´�.

���� ���� Ŭ������ 'private'�� ���ǵ� ������� �ִٸ�, ��ӵ� Ŭ������ ���� ������ �Ұ����ϴ�. ���� Ŭ������ ��������� ���� Ŭ������ ������ �ʿ䰡 �ִٸ�, ����� 'super'�� ���� �� �ִ�. �� ������� ���� Ŭ������ ���� ���е�(hidden) ���� Ŭ������ ������ �Ǵ� �޼ҵ带 ȣ���� �� �ִ�.

���� Ŭ������ �޼ҵ尡 ���� Ŭ������ �޼ҵ�� ������ ��Ī�� �ڷ����� ���� ��, �޼ҵ尡 �ߺ��ȴ�(overwritten)�� ���Ѵ�. �� Ư���� �ڹ��� ������ �ϸ��� �� ���ʸ� �����Ѵ�. "���� ���� �޼ҵ�(Dynamic selection method)"��� �θ���. �̴�, �Ź� ȣ�⸶�� ��� �޼ҵ尡 ���Ǿ�� �ϴ��� ������, ������ ���� �ڷ����� �����Ͽ� �����ϰ� ���� ��(execution time)�� ����ȴٴ� ���� �ǹ��Ѵ�.

���� ��������� �߻� Ŭ����(abstract classes), �������̽�(interfaces) ��� ���� ����� ��� �ɷ��� ��� ���̴�.

����


����: Ȳ ����
�� ������Ʈ�� Miguel Angel Sep�lveda�Կ� ���� �����˴ϴ�. 
� Jose M. Fernandez 1998 
LinuxFocus 1998