딱콩이의 봄

JAVA 주요 특징💡💡 본문

개발/JAVA

JAVA 주요 특징💡💡

코린이딱콩 2022. 8. 26. 20:07

객체지향 프로그래밍

💡현실 문제를 기능 또는 구조 위주의 관점으로 보고, 기능을 세분화하여 풀어가는 것을 절차 지향이라고 합니다.

💡객체지향은 문제를 데이터의 관점으로 보며, 데이터들의 상호관계를 정의함으로써 해결책을 찾아갑니다.

 

👨‍👨‍👧‍👧클래스와 🧍‍♀️객체

✔️자바 언어로 구현하는 프로그램은 다수의 클래스들로 이루어지며 이 클래스를 이용해 객체를 만들고 사용합니다.

✔️클래스를 정의한다는 것은 객체를 만들기 위한 과정입니다.

✔️클래스로부터 만들어지는 객체를 인스턴스(instance) 또는 인스턴스 객체(instance object)라고 합니다

 

클래스의 구성요소

✔️클래스는 상태와 행위를 가지며 상태나 속성을 필드(Field) , 행위를 메서드(Method)라고 합니다.

✔️클래스에는 필드와 메서드 외에 생성자(Constructor)라는 특수한 메서드도 하나 이상 갖습니다.

클래스의 구성요소

🧐필드(Field)의 정의

✔️클래스에 정의하는 속성은 특정한 값을 가지며, 객체의 속성 값은 해당 객체의 상태를 표현합니다.

✔️필드를 정의할 때는 반드시 접근 제한자(Access Modifier), 타입, 필드명을 명시합니다.

 

변수(variable)

✔️변수는 데이터를 담는 그릇이며, 데이터의 저장과 참조를 위해 메모리 공간을 할당받습니다.

  • 변수는 자료형과 변수의 이름을 사용하여 선언합니다.
int num1;
char ch1;

✔️변수 이름

  • 첫 글자는 문자만 올 수 있으며, 이어서 문자 또는 숫자가 올 수 있습니다.
  • 문자는 대소문자를 구분하며, 유니코드로 정의된 어떠한 문자도 사용할 수 있습니다.
  • 특수문자는 $ 와 _ 만 사용할 수 있는데 $는 컴파일러가 생성하므로 사용하지 않습니다.
  • 자바의 예약어는 사용할 수 없습니다. ex) boolean, class, switch, return 등

✔️변수 초기화

  • 선언한 변수에 처음으로 값을 할당하는 것을 변수 초기화라고 합니다.
  • 선언과 동시에 변수를 초기화할 수 있습니다.
  • 초기화하지 않은 변수를 사용하면 자바 컴파일러는 에러를 발생시킵니다.
int num1;
num1 = 10;
System.out.println(num1);

int num2 = 20;
Sytem.out.println(num2);

int num3;
System.out.println(num3); //컴파일 에러 발생!

✔️변수는 정의된 위치에 따라 4가지의 유형으로 구분하며 각 유형에 따라 갖는 특성에 차이가 있습니다.

  • 지역변수(Local variables) 
  • 매개변수(Parameter variables)
  • 인스턴스 변수(Instance variables)
  • 정적 변수(Class variables)
class VariableTypes {

//정적(클래스) 변수선언
 static int classVar = 10;

//인스턴스 변수선언
int instanceVar = 20;

}

public class Member {
	public static void main(String[] args) {
	
    int var = 30; //지역변수 선언
    
    System.out.println(var); //지역변수 참조
    
    VariableTypes myField1 = new Field();//인스턴스 생성
    VariableTypes myField2 = new Field();//인스턴스 생성
    
    System.out.println(VariableTypes.classVar);//클래스 변수 참조
    System.out.println(myField1.instanceVar); //인스턴스변수 참조
    }
  }

💡지역변수

메서드 안에 선언된 변수를 의미합니다. 메서드가 호출될 때 생성되고 메서드가 종료될 때 삭제되고, stack 메모리에 저장되며 접근 지정자를 사용할 수 없습니다. 반드시 사용하기 전에 초기화해야 합니다.

 

💡인스턴스 변수

메서드 밖에서 선언된 변수 중 static 키워드를 사용하지 않고 선언된 변수입니다. 객체가 생성될 때 생성되며 객체가 삭제될 때 삭제됩니다. heap메모리에 저장되며 각 객체의 정보를 저장하는 데 사용되어 멤버 변수라고도 합니다.

 

💡클래스 변수

클래스 변수는 메서드 밖에서 선언된 변수 중 static 키워드를 사용하여 선언한 변수입니다. 프로그램이 실행될 때 생성되고 프로그램이 종료될 때 삭제됩니다. 한 번만 생성되고 객체 생성 없이 클래스명.변수명으로 접근할 수 있습니다. 메서드 영역에 할당되고 객체(인스턴스) 간에 공유되기 때문에 공유 변수라고도 합니다.

                  변수               생성시기               소멸시기             저장메모리           사용방법
            클래스변수 클래스가 메모리에 올라갈때 프로그램이 종료될때 메소드 영역 클래스이름.변수이름
          인스턴스변수 인스턴스가 생성될 때 인스턴스가 소멸할 때 힙 영역 인스턴스이름.변수이름
              지역변수 블록 내에서 변수의 실행문에 선언될 때 블록을 벗어날 때 스택 영역 변수이름

 

 

🧐Reference

나무님 유튜브

https://www.youtube.com/watch?v=q6I6vk6gKRM

'개발 > JAVA' 카테고리의 다른 글

JAVA 주요 특징💡💡💡💡  (0) 2022.08.26
JAVA 주요 특징💡💡💡  (0) 2022.08.26
JAVA 주요 특징💡  (0) 2022.08.26
LinkedList와 ArrayList 비교  (0) 2022.08.17
HashMap과 HashTable의 차이  (0) 2022.08.16
Comments