일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- java
- 웹스토리지 사용법
- 상속
- 한번에insert하기
- 스프링부트
- qclass
- 코린이
- java기초
- 스프링시큐리티
- 웹동작방식
- 다운캐스팅
- 엔티티설계
- http
- Git
- 생성자
- 자바
- git commit취소
- 레포지토리설계
- 네트워크
- 파비콘에러
- 기초
- static
- MySQL
- 메소드
- 형변환
- JPA
- 프로젝트
- 오버라이딩
- 업캐스팅
- 0으로변환
- Today
- Total
딱콩이의 봄
JAVA 주요 특징💡💡 본문
객체지향 프로그래밍
💡현실 문제를 기능 또는 구조 위주의 관점으로 보고, 기능을 세분화하여 풀어가는 것을 절차 지향이라고 합니다.
💡객체지향은 문제를 데이터의 관점으로 보며, 데이터들의 상호관계를 정의함으로써 해결책을 찾아갑니다.
👨👨👧👧클래스와 🧍♀️객체
✔️자바 언어로 구현하는 프로그램은 다수의 클래스들로 이루어지며 이 클래스를 이용해 객체를 만들고 사용합니다.
✔️클래스를 정의한다는 것은 객체를 만들기 위한 과정입니다.
✔️클래스로부터 만들어지는 객체를 인스턴스(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
나무님 유튜브
'개발 > 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 |