균민정음
Tomorrow += 나의 Today
균민정음
전체 방문자
오늘
어제
  • 분류 전체보기
    • Blog 력사
    • 코딩목록 A
      • JS
      • HTML_CSS
      • Python
    • 코딩목록 B
      • C
      • JAVA
      • Git
    • 코딩테스트
      • 프로그래머스(SQL)
      • 프로그래머스(JAVA)
    • Content
      • Book
      • A lot Of
      • toeic

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 본인 공부한거 기록하는 곳.

인기 글

태그

  • 디자인스킬 #유튜브 #코딩애플
  • 메타버스 #MetaBus
  • css_poisition
  • Github Desk #Vscode
  • 구글폰트 #html아이콘
  • 객체리터널

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
균민정음

Tomorrow += 나의 Today

코딩목록 B/JAVA

[JAVA] 클래스

2022. 9. 21. 01:20

class클래스

클래스class 란 객체를 정의하는 틀 또는 설계도와 같은 의미로 사용

객체를 만들기 위한 일종의 틀이다. 

ex) 붕어빵이 객체 , 붕어빵 틀은 클래스.

   : 객체의 상태를 나타내는 필드field

   : 필드란 클래스에 포함된 변수variable를 의미.

   : 객체의 행동을 나타내는 메소드method, 어떠한 특정 작업을 수행하기 위한 명령문의 집합.

 

 

instance인스턴스

자바에서 클래스를 사용하기 위해서는 우선 해당 클래스 타입의 객체(object)를 선언한다

클래스로부터 객체를 선언하는 과정을 클래스의 인스턴스 화

메모리에 할당된 객체를 의미합니다.

 

Ex)
 클래스class
  - 차
  
 필드field
  - 차.모델명 : 펠리세이드
  - 차.연식  : 2020
  - 차.색 : 흰색
  - 차.최고속도: 300
  
 메소드method
  - 차.액셀
  - 차.브레이크
  
 인스턴스instance
 - 내 차(myCar) 설계도(클래스)에 의해 생산된 차량
 - 타인의 차(othercar) : //
 
 자동차 인스턴스는 모두 같은 필드와 메소드 항목을 가지고 될것이지만,
 각기 다른 프로퍼티의 값을 갖는다.

 

 

 메소드 method

 맴버member로 속성을 표현하는 field 와 기능을 표현하는 메소드method

   접근제어자 반환타입 메소드이름(매개변수목록) { //선언부
   	 // 구현부
   }

 하나의 클래스에 같은 이름의 메소드를 둘 이상 정의할 수 없지만.
 메소드 오버로딩overloading을 이용하면, 같은 이름의 메소드를 중복하여 정의할 수 잇습니다.

 

 

Field

  클래스의 필드field애 포함된 변수variable를 의미합니다.
  - 클래스 변수static variable
  - 인스턴스 변수instance variable
  - 지역 변수local variable

 

** 클래스 변수와 인스턴스 변수는 초기화 하지않아도 변수타입에 맞게 자동으로 초기화 될 것이다.
  하지만 지역 변수는 사용하기 전에 초기화하지 않으면, 자바 컴파일러가 오류를 발생시킵니다.

변수의 타입 초깃값
char '\u0000'
byte, short, int 0
long 0L
float 0.0F
double 0.0 또는 0.0D
boolean false
배열, 인스턴스 등 null

 

 

Static

해당 static을 가진 변수를 클래스변수라고 한다.

클래스 영역에 위치한 변수 중 static 키워드를 가지지 않은 변수는 인스턴스 변수,
메소드,생성자, 초기화 블록내에 위치한 변수를 지역변수라고 부른다.

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

클래스변수(static)는 인스턴스를 생성하지 않고도 바로 사용할 수 있습니다.
공유변수 shared variable라고도 한다

 

클래스변수는 해당 클래스의 모든 인스턴스가 공유해야 하는 값을 유지하기 위해 사용.
인스턴스 변수는 인스턴스마다 가져야하는 고유한 값을 유지하기 위해 사용.

Ex).

 

 

메소드 시그니처(method signature)

메소드의 선언부에 명시되는 매개변수의 리스트를 가리킵니다.

만약 두 메소드가 매개변수의 개수와 타입, 그 순서까지 모두 같다면,이 두 메소드의 시그니처는 같다고 할 수 있습니다.

//메소드 시그니처
public class MethodEx {
	public void funA(int x, int y) {
		//
	}
	public void funA(double A, int y, double z) {
		//
	}
	// 메서드시그니처는 funA(int x, int y)와 funA(double A, int y, double z)으로 
	// 메서드이름은 동일하나 매개변수 리스트가 다르다
	// Java컴파일러가 오버로딩된 함수를 메서드 시그니처를 통해서 구별한다는 
	// 의미를 이해할 수 있을 것이다.

 

 

생성자constructor

 객체의 생성과 동시에 인스턴스 변수를 원하는 것으로 초기화할 수 있는 생성자
 해당 클래스의 이름과 같아야한다.

 : 특징
  1. 생성자는 반환값이 없지만, 반환 타입을 void형으로 선언하지 않습니다
  2. 생성자는 초기화를 위한 데이터를 인수로 전달 받을 수 있습니다.
  3. 객체를 초괴화하는 방법이 여러개 존재할 경우에는 하늬 클래스가 여러개의 생성자를 가질 수 있습니다.

 ex)
Car(String modelName) {}
Car(String modelName, int modelYear) {}
Car(String modelName, int modelYear, String color) {}
Car(String modelName, int modelYear, String color, int maxSpeeds) {}

// 기본 생성자
//  클래스이름() {}

**  기본 생성자는 아무런 동작도 하지 않으므로, 인스턴스 변수를 클래스 필드에서 바로 초기화하고 있습니다.
  하지만 매개변수를 가지는 생성자를 하나라도 정의하면 기본생성자는 자동생성되지 않으니 생성해줘야한다

 

 

 


출처:  

http://www.tcpschool.com/java/

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

Udmy 자바 :https://www.udemy.com/share/1078ow3@ghzUZYVbsTk7B2-spjj5ue3nXCBznm-C2GdRhMWGlb0K3CY2sBUdHIuXjUyy0A6lNg==/

'코딩목록 B > JAVA' 카테고리의 다른 글

[JAVA] 오브젝트Object와 인스턴스instance  (1) 2022.10.04
[JAVA] this()  (0) 2022.10.03
[JAVA] ArrayList  (0) 2022.09.20
[JAVA] 배열 Array  (0) 2022.09.19
[JAVA] 반복문  (0) 2022.08.22
    '코딩목록 B/JAVA' 카테고리의 다른 글
    • [JAVA] 오브젝트Object와 인스턴스instance
    • [JAVA] this()
    • [JAVA] ArrayList
    • [JAVA] 배열 Array
    균민정음
    균민정음
    곡창1

    티스토리툴바