Web develop/JAVA

[JAVA] 자바의 구성요소 (변수, 클래스, 메소드)

ForA 2019. 4. 17. 21:20
728x90

JAVA

자바는 썬 마이크로시스템즈의 제임스 고슬링과 다른 연구원들이 개발한 객체지향적 프로그래밍 언어이다. 처음에는 가전제품 내에 탑제해 동작하는 프로그램을 위해 개발했지만 현재 웹 애플리케이션 개발에 가장 많이 사용하는 언어 가운데 하나이고, 모바일 기기용 소프트웨어 개발에도 널리 사용하고 있다.

 

자바는 운영체제로부터 자유롭다. JVM(Java Virtual Machine)으로 새 운영체제를 사용한다.


자바 프로그램의 구성요소

: 필드(field), 메소드(method), 클래스(class)

필드(field, 변수)

  • 데이터 속성, 자료구조, 데이터를 담는 그릇

  • 첫글자 소문자. 단어 뒤에 () 소괄호 포함X

  • 변수 형식

자료형 변수명; //변수선언  
자료형 변수명 = 데이터값; //변수 선언과 초기화(값 할당)  
int i = 0;

int i;  
int j;  
int k;  
\==> int i,j,k;  
\==> int i=10, j=20, k=30;

//자료형: char, byte, short, int, long, float, double, boolean, String

 

  • 속성변수
    : 기본자료형 변수명; (직접 데이터를 가지고있음)

  • 참조(reference,주소)변수
    : 클래스자료형 변수명; (메모리에 데이터가 위치)

final 변수

final 자료형 변수명;
final 리턴자료형 메소드명( ) { };
final class 클래스명{ };

final int MAX = 100;
MAX++; -> 에러발생
  • 마지막 변수 (상수. constant)---> 상수의 식별을 위해 전체 대문자로 표기
  • 마지막 메소드 : 오버라이딩(메소드 재정의) 할 수 없는 메소드
  • 마지막 클래스: 자식클래스를 갖지않는 클래스. 자식을 통한 기능확장을 하지않아 보안에 용이함

메소드(method,함수)

  • 기능, 행위

  • 첫글자 소문자. 단어 뒤에 () 소괄호 포함O

  • 메소드 형식

리턴자료형 메소드명( 매개변수 )// 매개변수의 다른용어: 인수, 인자, argument, 파라미터  
{// 메소드 시작

}// 메소드 끝

void gildong( )  
{

1. 문 앞으로 이동; 
2. 문 열기; 
3. 되돌아오기; 
// return; (생략가능) 

}  
//메소드: 문장의 순차적인 나열.  
//void: 가져올 데이터가 없을 때 사용

Coffee lime ()  
{

1.자판기 앞으로 이동; 
2.동전 투입; 
3.커피버튼 클릭; 
4. 커피를 뽑아서 되돌아오기; 
return 커피; //생략불가

}  
// Coffee: 클래스. (대문자로 시작)

Cola juwon (int coin)  
{

1.자판기 앞으로 이동; 
2.매개변수로 받은 동전투입; 
3.콜라버튼 클릭; 
4.콜라를 뽑아서 되돌아오기; 
return 콜라; //생략불가 
```

}
  • 메소드 호출(사용)
    : 실행순서) 호출 → (매개변수) → 명령문 → 리턴

     

     

메소드명();
lime();
juwon(300);

클래스(class,객체)

  • 자바 프로그램 기본단위(파일). 필드와 메소드를 담는 울타리(template)

  • 첫글자 대문자

  • 객체, object, instance, entity 라고 불림

  • 클래스 형식

     

    class 클래스명
    { //클래스 시작
    
    }// 클래스 끝
    
    class 클래스명
    {
    
    //변수선언 (속성변수)    
      int su;    
      boolean flag;    
      double d;    
    
      //변수선언 (참조변수)        
      String str;        
      A obj;         
    
      //메소드 정의        
      리턴형 메소드명( )        
      {             
    
          //변수 선언    int min;            
          //변수 초기화    su = 20; min = 300;            
    
          //메소드 호출    System.out.println(su);            
          // 조건문    if(조건문){    }            
          // 반복문            
      } //method
      }//class
  • 클래스 사용
    : 객체생성(메모리 할당) 해서 사용

    class A
      { int su = 300;
    
      void hello()
      { 
       System.out.println("안녕하세요");    
      }
    }
    
    //객체생성식
    A obj = new A();
    
    //클래스 내부 요소 사용
    obj.su; // A클래스에 있는 su 필드
    obj.hello(); // A클래스에 있는 hello() 메소드

식별자(identifier)이름 규칙

  • 변수명, 메소드명, 클래스명에 적용
  1. 첫글자 숫자 불가능 /숫자를 변수명으로 보는것이 아니라 데이터로 인식

     cup1, cup2 (o) 
     1cup, 2cup (x) 
    
     int su1; (o)int su2; (o) 
     int 1su; (x)int 2su; (x)int 3su; (x)
  2. 특수문자 사용불가

     cup@ cup% (x)-->예외) _ , $ 사용 가능 / $는 클래스에서 사용 
     String name; 
     String studentName; 
     String student_name;
  3. 자바는 유니코드(16비트)를 지원하기 때문에 한글도 가능하지만 한글사용은 비추함

  4. 예약어 사용 금지. (에러발생)

     int class;int public;int if;

자바 자료형 (DataType)

문자

  • char

    // 변수 선언: ch 변수에 문자데이터를 받겠음//변수 초기화(값을 할당)

  • 정수

byte (1byte)

-1byte == 8bit ==2의 8승 == 256개 (-128 ~ 0 ~ 127)

byte b = 123; 127; 0; (o)
byte b = 128; -129; (x)

short(2byte)
int (4byte) : 가장 많이 사용
int i = 345;

long (8byte)
  • 실수

float (4byte)
double (8byte) : 가장 많이 사용
double d = 3.14;
  • 논리

false; (o); "false"; (x)

자바 따옴표 차이

System.out.println("H" + "a");
System.out.println('H' + 'a');
System.out.println('H'+0);
System.out.println('a'+0);

실행결과==>

Ha
169
72
97
  • " " 큰따옴표의 경우 문자열로 인식하여 두 문자가 합쳐져서 결과가 표시된다.
  • 작은 따옴표의 경우는 + 연산자를 사용하면 H 와 a 는 Integer형으로 형변환이 되어 169가 출력된다.
  • String = " " ; ==>클래스형
  • char = ' '; ==>변수형

자바의 설명문/ Comment, 주석문

  • 라인 주석문

      //설명
  • 블럭 주석문

      /*
      설명1
      설명2
      */