Top 38 자바 키워드 All Answers

You are looking for information, articles, knowledge about the topic nail salons open on sunday near me 자바 키워드 on Google, you do not find the information you need! Here are the best content compiled and compiled by the https://chewathai27.com/to team, along with other related topics such as: 자바 키워드 자바 키워드 정리


[자바 기초 25] static 키워드
[자바 기초 25] static 키워드


자바 키워드 – 제타위키

  • Article author: zetawiki.com
  • Reviews from users: 41905 ⭐ Ratings
  • Top rated: 3.4 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 자바 키워드 – 제타위키 Java keywords; 자바 키워드. 자바 예약어; const와 goto는 지원안함; 식별자로 사용불가. 클래스, 메소드, 변수 이름으로 사용할 수 없음 … …
  • Most searched keywords: Whether you are looking for 자바 키워드 – 제타위키 Java keywords; 자바 키워드. 자바 예약어; const와 goto는 지원안함; 식별자로 사용불가. 클래스, 메소드, 변수 이름으로 사용할 수 없음 …
  • Table of Contents:

목차

1 개요[ ]

2 키워드[ ]

3 상수 3[ ]

4 같이 보기[ ]

5 참고[ ]

자바 키워드 - 제타위키
자바 키워드 – 제타위키

Read More

JAVA 자바 키워드 및 식별자

  • Article author: cezacx2.tistory.com
  • Reviews from users: 49963 ⭐ Ratings
  • Top rated: 3.6 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about JAVA 자바 키워드 및 식별자 키워드 란 특정 용도로 사용하기 위해서 자바 프로그램에서 미리 예약되어 있는 명령으로, 이미 선언된 명령, 즉 다른 변수나 클래스, 메소드명 등으로 … …
  • Most searched keywords: Whether you are looking for JAVA 자바 키워드 및 식별자 키워드 란 특정 용도로 사용하기 위해서 자바 프로그램에서 미리 예약되어 있는 명령으로, 이미 선언된 명령, 즉 다른 변수나 클래스, 메소드명 등으로 … 자바를 시작하기 전 키워드와 식별자를 이해하셔야 합니다. 프로그래밍의 기초를 조금만 알고 계시다면 쉽게 이해 되겠지만 처음 시작하시는 분들은 프로그램을 깔고, 여러 수십번 따라하기 전 까지는 이 내용을..구글,엑셀,워드,파워포인트,블로그,포스팅,티스토리,네트웍,네트워크,Network,리눅스,유닉스,윈도우,윈도우7,게임,비트코인,금연,담배,블로그마켓팅,블로그마케팅,블로그 마케팅,온라인 마케팅,마케팅,돈벌기,블로그 돈벌기,블로그 수익,광고 수익,비트코인 채굴,금연 성공,금연 성공기,온라인 게임,인터넷,서버,서버관리,네트웍 관리,블로그 팁,광고 팁,애드센스,Adsense,리얼클릭,리얼센스,카우리,구글 애드센스,재테크,부자되기,유머,개그,잼난글,웃긴글,스포츠,연예,카툰,만화,포토샵,adobe
  • Table of Contents:
JAVA 자바 키워드 및 식별자
JAVA 자바 키워드 및 식별자

Read More

자바 최종 키워드

  • Article author: ko.w3hmong.com
  • Reviews from users: 33461 ⭐ Ratings
  • Top rated: 3.9 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 자바 최종 키워드 예시. final 재정의/수정을 방지 하려면 변수를 로 설정하십시오 . public Main { final int x = 10; public static vo main(String[] args) { Main myObj … …
  • Most searched keywords: Whether you are looking for 자바 최종 키워드 예시. final 재정의/수정을 방지 하려면 변수를 로 설정하십시오 . public Main { final int x = 10; public static vo main(String[] args) { Main myObj …
  • Table of Contents:

자바 튜토리얼

자바 메소드

자바 클래스

자바 파일 처리

자바 방법

자바 참조

자바 예제

정의 및 사용

관련 페이지

자바 최종 키워드
자바 최종 키워드

Read More

JAVA 키워드: new

  • Article author: velog.io
  • Reviews from users: 13609 ⭐ Ratings
  • Top rated: 4.4 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about JAVA 키워드: new new 키워드의 경우 자바 가상 머신(JVM)이 new 키워드를 보면, new 뒤에 있는 클래스이름을 보고, 해당하는 클래스를 메모리에 올립니다. …
  • Most searched keywords: Whether you are looking for JAVA 키워드: new new 키워드의 경우 자바 가상 머신(JVM)이 new 키워드를 보면, new 뒤에 있는 클래스이름을 보고, 해당하는 클래스를 메모리에 올립니다. 안녕하세요. 😊 오늘은 JAVA 키워드 중에 new에 대해 포스팅해보도록 하겠습니다.이전에 JAVA 기초 : Keywords 1편에서 static 키워드에 대해 다뤘던 것 기억나시나요? static 키워드는 변수 또는 함수의 자료형 앞에 기술해서 사용하며, 프로그램이
  • Table of Contents:

JAVA기초

new

static vs new 쉬운 설명 톨게이트 예시

static vs new 어려운 설명 객체와 메모리 할당

JAVA 키워드: new
JAVA 키워드: new

Read More

[JAVA] 키워드, 식별자, 상수, 제어자

  • Article author: enderbridge.tistory.com
  • Reviews from users: 5834 ⭐ Ratings
  • Top rated: 4.6 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [JAVA] 키워드, 식별자, 상수, 제어자 [JAVA] 키워드, 식별자, 상수, 제어자 · 1. 키워드. 제어자 : static, final, vo, for, while, try, import, if, this, interface, extends, 등등 · 2. …
  • Most searched keywords: Whether you are looking for [JAVA] 키워드, 식별자, 상수, 제어자 [JAVA] 키워드, 식별자, 상수, 제어자 · 1. 키워드. 제어자 : static, final, vo, for, while, try, import, if, this, interface, extends, 등등 · 2. 1. 키워드 제어자 : static, final, void, for, while, try, import, if, this, interface, extends, 등등 접근제어자(public, protected, default, private) int, double, true, false, null, 등등 하지만 Clas..
  • Table of Contents:

‘LanguageJAVA’ Related Articles

공지사항

최근 포스트

태그

검색

전체 방문자

[JAVA] 키워드, 식별자, 상수, 제어자
[JAVA] 키워드, 식별자, 상수, 제어자

Read More

[Java] 자바 클래스 와 객체 및 키워드 :: 쏘니의 개발블로그

  • Article author: juntcom.tistory.com
  • Reviews from users: 12940 ⭐ Ratings
  • Top rated: 3.7 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [Java] 자바 클래스 와 객체 및 키워드 :: 쏘니의 개발블로그 [Java] 자바 클래스 와 객체 및 키워드. 곰돌이쿤 2021. 1. 17. 20:05. 클래스 정의하는 방법; 객체 만드는 방법 (new 키워드 이해하기); 메소드 정의하는 방법 … …
  • Most searched keywords: Whether you are looking for [Java] 자바 클래스 와 객체 및 키워드 :: 쏘니의 개발블로그 [Java] 자바 클래스 와 객체 및 키워드. 곰돌이쿤 2021. 1. 17. 20:05. 클래스 정의하는 방법; 객체 만드는 방법 (new 키워드 이해하기); 메소드 정의하는 방법 … 클래스 정의하는 방법 객체 만드는 방법 (new 키워드 이해하기) 메소드 정의하는 방법 생성자 정의하는 방법 this 키워드 이해하기 클래스란 클래스는 쉽게 설명하면 객체를 만들기 위한 틀 붕어빵은 하나의 객체..개발 블로그입니다. 차근차근 많은 내용 정리해보고 싶습니다.
  • Table of Contents:

클래스란

클래스 요소

클래스 정의

제어자 키워드

객체 생성

new 연산자

생성자 정의

this 키워드

super 키워드

TAG

관련글 관련글 더보기

인기포스트

티스토리툴바

[Java] 자바 클래스 와 객체 및 키워드 :: 쏘니의 개발블로그
[Java] 자바 클래스 와 객체 및 키워드 :: 쏘니의 개발블로그

Read More

모던 자바스크립트 Deep Dive: 자바스크립트의 기본 개념과 동작 원리 – 이웅모 – Google Sách

  • Article author: books.google.com.vn
  • Reviews from users: 37180 ⭐ Ratings
  • Top rated: 4.1 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 모던 자바스크립트 Deep Dive: 자바스크립트의 기본 개념과 동작 원리 – 이웅모 – Google Sách Updating …
  • Most searched keywords: Whether you are looking for 모던 자바스크립트 Deep Dive: 자바스크립트의 기본 개념과 동작 원리 – 이웅모 – Google Sách Updating 269개의 그림과 원리를 파헤치는 설명으로 ‘자바스크립트의 기본 개념과 동작 원리’를 이해하자! 웹페이지의 단순한 보조 기능을 처리하기 위한 제한적인 용도로 태어난 자바스크립트는 과도하다고 느껴질 만큼 친절한 프로그래밍 언어입니다. 이러한 자바스크립트의 특징은 편리한 경우도 있지만 내부 동작을 이해하기 어렵게 만들기도 합니다. 하지만 자바스크립트는 더 이상 제한적인 용도의 프로그래밍 언어가 아닙니다. 오랜 변화를 거쳐 이제 자바스크립트는 프런트엔드와 백엔드 영역의 프로그래밍 언어로 사용할 수 있는 명실상부한 범용 애플리케이션 개발 언어로 성장했습니다. 따라서 자바스크립트를 학습하는 방식도 이에 걸맞게 변화해야 하며, 이 책은 자바스크립트의 기본 개념과 동작 원리를 깊이 있게 학습하고자 하는 독자를 위해 기획되었습니다. 《모던 자바스크립트 Deep Dive》에서는 자바스크립트를 둘러싼 기본 개념을 정확하고 구체적으로 설명하고, 자바스크립트 코드의 동작 원리를 집요하게 파헤칩니다. 따라서 여러분이 작성한 코드가 컴퓨터 내부에서 어떻게 동작할 것인지 예측하고, 명확히 설명할 수 있도록 돕습니다. 또한 최신 자바스크립트 명세를 반영해 안정적이고 효율적인 코드를 작성할 수 있는 기본기를 다지고, 실전에서 쓰이는 모던 자바스크립트 프레임워크나 도구를 완벽하게 이해하고 활용할 수 있게 도와줍니다.
  • Table of Contents:
모던 자바스크립트 Deep Dive: 자바스크립트의 기본 개념과 동작 원리 - 이웅모 - Google Sách
모던 자바스크립트 Deep Dive: 자바스크립트의 기본 개념과 동작 원리 – 이웅모 – Google Sách

Read More

자바스크립트 ES6+ 독학백서: ECMA 2021 버전 기준! 최신 기초 문법 독학서 – 이도해 – Google Sách

  • Article author: books.google.com.vn
  • Reviews from users: 20128 ⭐ Ratings
  • Top rated: 3.9 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 자바스크립트 ES6+ 독학백서: ECMA 2021 버전 기준! 최신 기초 문법 독학서 – 이도해 – Google Sách Updating …
  • Most searched keywords: Whether you are looking for 자바스크립트 ES6+ 독학백서: ECMA 2021 버전 기준! 최신 기초 문법 독학서 – 이도해 – Google Sách Updating 이 책은 비전공자 · 프로그래밍에 대한 지식이 전무한 사람 누구나자바스크립트 프로그래밍을 쉽게 시작할 수 있는 것에 초점을 맞추어 작성되었습니다.이론을 너무 오래 잡고 있지 마세요. 프로그래밍은 재밌어야 합니다.필수적이고 핵심적인 문법과 사용법만 이 책을 통해 빠르게 학습하시고,무엇이든지 작은 것부터 만들어보세요.
  • Table of Contents:
자바스크립트 ES6+ 독학백서: ECMA 2021 버전 기준! 최신 기초 문법 독학서 - 이도해 - Google Sách
자바스크립트 ES6+ 독학백서: ECMA 2021 버전 기준! 최신 기초 문법 독학서 – 이도해 – Google Sách

Read More


See more articles in the same category here: 316+ tips for you.

JAVA 자바 키워드 및 식별자

자바를 시작하기 전 키워드와 식별자를 이해하셔야 합니다.

프로그래밍의 기초를 조금만 알고 계시다면 쉽게 이해 되겠지만 처음 시작하시는 분들은 프로그램을 깔고, 여러 수십번 따라하기 전 까지는 이 내용을 충분히 이해할 수 없을 것입니다.

키워드

란 특정 용도로

사용하기 위해서 자바 프로그램에서

미리 예약되어 있는 명령으로, 이미

선언된

명령, 즉 다른 변수나 클래스, 메소드명 등으로 사용할 수 없는 제한된 단어라고 생각하시면 됩니다.

이 키워드는 알파벳 순으로 abstract 부터 while 까지 총 50개로 이루어져 있는데요, 아래 목록을 살펴보시기 바랍니다.

물론 바로 외울 필요는 없으니 이런것들이 있구나 생각하면 되겠으며, 앞으로 있을 여러 문법과 응용에서 자주 사용되어지는 것들을 연습하다 보면 자연스레 익숙해질 것입니다.

goto 와 const 키워드는 자바 프로그램에서 사용하면 안되는 키워드이며 사용해봤자 무의미한 키워드입니다.

C 개발자들이 자주 사용하던 키워드를 실수하지 않도록 자바에서 미리 정해두고 사용하지 못하게 만들어 둔 것입니다.

abstract

assert

boolean

break

byte

case

catch

char

class

(const)

continue

default

do

double

else

enum

extends

final

finally

float

for

it

(goto)

implements

import

instanceof

int

interface

long

native

new

package

private

protected

public

return

short

static

strictfp

super

switch

synchronized

this

throw

throws

transient

try

void

volatile

while

이 외에 상수 값을 표현하는 단어가 3개 있는데요, 엑셀에서 돌려주는 값과 유사한 것을 확인할 수 있겠습니다.

true

false

null

식별자 는 클래스, 메소드, 변수, 배열, 문자열 등을 구분하기 위해 개발자가 임의로 정의하여 사용할 수 있는 이름을 말하며, 몇가지 제약이 있는데 아래를 참고하시기 바랍니다.

.

하나 이상의 글자로 이루어져야 한다.

첫번째 글자는 문자이거나 ‘$’, ‘_’ 이어야 하며, 두번째 이후의 글자는 숫자, 문자, ‘$’, ‘_’ 이어야 한다.

‘$’, ‘_’ 이외의 특수문자는 사용할 수 없지만, 유니코드 문자로 선언할 수 있다.

길이의 제한은 없으며, 키워드는 식별자로 사용할 수 없다.

공백은 사용할 수 없으며, 대소문자를 구별하여 사용한다.

상수 값을 표현하는 단어 true, false, null은 식별자로 사용할 수 없다.

자바 프로그래밍에 있어 우선 키워드와 식별자에 대해 알아봤는데요, 위에서 말씀드렸다시피 바로 외우실 필요는 없으며 앞으로 연습하는 가운데 자연스레 몸소 습득하게 될 것입니다.

자, 이제 자바 프로그래밍을 위한 준비를 모두 마쳤으니 다음 포스팅부터는 기초 문법을 통하여 기본적인 것부터 제작/테스트해 보도록 하겠습니다.

—–

방문 감사합니다 (__)

JAVA 키워드: new

안녕하세요. 😊 오늘은 JAVA 키워드 중에 new에 대해 포스팅해보도록 하겠습니다.

들어가기 앞서서..

이전에 JAVA 기초 : Keywords 1편에서 static 키워드에 대해 다뤘던 것 기억나시나요?

static 키워드는 변수 또는 함수의 자료형 앞에 기술해서 사용하며, 프로그램이 시작할 때 생성되고, 프로그램이 시작할 때, static 키워드가 붙어있는 자원을 자바 가상머신이 해당 자원을 메모리에 올려줍니다.

예시로, 다음과 같은 코드가 있을 때,

package a.b.c.ch1; public class Example{ static int i; public static void main(String args[]){ System.out.println(“int i >>>”+i); } }

실행하면 int의 디폴트 값인 0이 정상적으로 출력됩니다.

그런데, 만약 static int i를 int i로만 선언해주면 어떻게 될까요?

Example.java:6: error: non-static variable i cannot be referenced from a static context System.out.println(“int i >>>”+i); ^ 1 error

자바 컴파일 과정에서 다음과 같은 에러가 나는 것을 확인 할 수 있습니다.

이럴 경우, new라는 키워드를 사용하여 다음과 같이 코드를 작성하면,

package a.b.c.ch1; public class Example{ int i; public static void main(String args[]){ Example rv=new Example(); System.out.println(“int i >>>”+rv.i); } }

int의 디폴트값인 0이 정상적으로 출력이 됩니다.

왜 new라는 키워드를 사용하면 static을 사용하지 않고도 출력이 가능해지는 걸까요?

new

자바에서 자바 프로그램을 메모리에 올리는 여러 방법이 있지만,

이전에 포스팅 했던, static 키워드가 있고, 오늘 포스팅할 new 키워드가 있습니다.

new 키워드

new 키워드의 경우 자바 가상 머신(JVM)이 new 키워드를 보면, new 뒤에 있는 클래스이름을 보고, 해당하는 클래스를 메모리에 올립니다.

이전 코드를 살펴보면

Example rv=new Example();

이 부분이 new 키워드를 사용하여 Example이라는 클래스를 메모리에 올린 겁니다.

new 키워드 사용방법

new키워드의 사용방법은 다음과 같습니다.

1. 클래스 이름을 선언한다.

2. 참조 변수를 선언한다.

3. = 대입 연산자를 선언한다.

4. new 키워드를 선언한다.

5. 생성자를 선언한다. (클래스 이름에 () 소괄호를 붙여서만든다.

클래스이름 변수(참조변수, reference variable) = new 클래스이름();

static vs new 쉬운 설명 : 톨게이트 예시

static 명령어를 사용하면, 클래스 내 함수에서 쉽게 출력이 가능한데,

new 명령어를 사용하면,

클래스이름 참조변수 = new 클래스이름(); System.out.println(참조변수.출력하고자하는변수);

이런 식으로 복잡하게 출력을 해야 합니다.

이를 제 개인적인 생각으로 쉽게 풀어서 톨게이트 사례로 설명하면 다음과 같습니다.

톨게이트 예시

예시로, 서울에서 운전을 해서 급하게 부산을 가야할 일이 생겼다고 합시다.

부산을 가기위해 경부고속도로를 타고 가려는데, 고속도로에 들어가려면 톨게이트를 통과해야만 고속도로를 이용할 수 있습니다.

이 때, 하필 톨게이트 직원들이 전부 파업해서 하이패스로만 고속도로에 들어갈 수 있다고 가정하면, static은 이 때, 내 차에 있는 하이패스 리더기라고 볼 수 있습니다.

자바가상머신에 컴파일을 할 때, static이 있으면, 고속도로를 바로 이용할 수 있는 것입니다.

그런데 만약 하이패스 리더기가 차에 없다면??

경부고속도로를 이용해서 부산에 가려고 하는데, 하필 이 때, 하이패스 리더기 수리를 맡겨서

없다면 어떻게 해야 할까요?

고속도로를 이용하지 못하기 때문에, 국도를 이용해 부산에 가야 할 것입니다.

여기서 포인트는,

첫 번째로 고속도로와 국도는 다르다는 것입니다.

두 번째로 고속도로로 가던 국도로 가던 결국 부산에 갈 수 있다는 것입니다.

static new 고속도로 국도

static vs new 어려운 설명 : 객체와 메모리 할당

앞의 톨게이트 예시가 이해가 되었다면, 본격적으로 static과 new에 대해서 설명해보도록 하겠습니다. 😊

객체

먼저, static과 new에 대해 이해하려면 객체를 알아야 합니다.

객체란 소프트웨어 공학 용어로, ‘의사나 행위가 미치는 대상’이며 유무형의 사물을 의미합니다.

객체를 코드로 구현한 것이 클래스입니다.

예를 들어 나라는 사람이 있다고 하면,

나 : 🤵 운동하는 나: ⛹️ 서 있는 나: 🧍 저글링 하는 나: 🤹

나라는 인물은 한 명이지만, 어떤 것을 하느냐에 따라 또 다른 나라는 존재가 있습니다.

여기서, 운동하는 나, 서 있는 나, 저글링 하는 나 모두 객체에 해당합니다.

클래스이름 참조변수 = new 클래스이름(); System.out.println(참조변수.출력하고자하는변수);

위의 코드에서 new 클래스이름(); 은 new라는 키워드를 통해 새로운 객체를 생성해주라는 의미입니다.

이 때, 좌항에 있는 참조변수는 메모리에 생성된 인스턴스를 가리키는 변수를 의미합니다.

해당 코드를 수행하고나서

System.out.print(참조변수);

코드를 실행하게 되면 클래스이름@ ~ 이런식으로 출력되는데,

~ 이 부분이 참조 변수의 주소값(참조값)을 의미합니다.

클래스와 객체 관련 용어 정리

용어가 어려우신 분들을 위해 용어와 설명을 정리하면 다음과 같습니다.

용어 설명 객체 객체 지향 프로그램의 대상, 생성된 인스턴스 클래스 객체를 프로그래밍하기 위해 코드로 만든 상태 인스턴스 클래스가 메모리에 생성된 상태 멤버 변수 클래스의 속성, 특성 메서드 멤버 변수를 이용하여 클래스의 기능을 구현 참조 변수 메모리에 생성된 인스턴스를 가리키는 변수 참조 값 생성된 인스턴스의 메모리 주소 값

메모리의 구조

TCP SCHOOL.com 의 메모리의 구조 포스팅 자료를 인용하면,

프로그램이 실행되기 위해서는 프로그램이 메모리에 로드 되어야 하며, 프로그램에서 사용되는 변수들을 저장할 메모리가 필요합니다.

함수를 호출하면 그 함수만을 위한 메모리 공간이 할당되는데, 이 메모리 공간을 스택(stack)이라고 부릅니다.

함수 내부에서만 사용하는 변수를 지역 변수라고 하며, 스택 메모리에 생성됩니다.

new 클래스이름()을 선언하면, 객체가 생성되는데, 해당 객체에서 멤버 변수를 출력하려면, 이 변수를 저장할 공간이 있어야 합니다. 이 때 사용하는 메모리가 힙 메모리입니다.

코드를 통해 메모리 공간 살펴보기

package a.b.c.ch1; public class Exam_ClassTest { // 멤버 변수 int iVal; // 스태틱 변수, 클래스 변수 static int iValStatic; public static void main(String args[]) { System.out.println(“main() 함수는 콘솔어플리케이션 시작점이다.”); System.out.println(“함수 블럭안에서는 인터프리트 방식으로 수행된다.”); // 함수 블럭 내부에서 선언한 지역 변수 int i = 10; System.out.println(“i >>> : ” + i); // static 변수 호출하기 System.out.println(“iValStatic >>> : ” + iValStatic); // static 키워드가 붙지 않은 iVal 멤버 변수 사용법 // iVal 멤버변수를 메모리에 올려야 한다. Exam_ClassTest ec = new Exam_ClassTest(); System.out.println(“Exam_ClassTest 사용자정의 클래스의 변수(참조변수) ec >>> :

” + ec); System.out.println(“ec.iVal >>> : ” + ec.iVal); Exam_ClassTest ec_1 = new Exam_ClassTest(); System.out.println(“Exam_ClassTest 사용자정의 클래스의 변수(참조변수) ec_1 >>> :

” + ec_1); System.out.println(“ec_1.iVal >>> : ” + ec_1.iVal); System.out.println( “스태틱변수는 참조변수로 참조해서 사용하면 안 된다.

” + “ec_1.iValStatic >>> : ” + ec_1.iValStatic); } }

가령, 위의 코드를 실행한다면,

메모리에 사진과 같이 저장됩니다.

이 때, Exam_ClassTest()를 생성자라고 하는데, 이 생성자가 해당 클래스 내부에 선언한 멤버변수를 디폴트 값으로 초기화 합니다.

생성자가 메모리에 올라가면(인스턴스 되면) 해당 클래스에 있는 멤버변수를 디폴트 값으로 초기화 한다.

저번 시간에 함수와 변수 포스팅을 할 때, 변수의 경우 변수의 유효범위를 인지하는 게 중요하다고 한 이유가 바로 이런 메모리 구조 때문이였습니다.

만약, 위의 코드에서 main함수 아래에, iVal을 출력시키면 출력이 되지 않습니다.

main 함수 안.. System.out.println(“iValStatic >>> : ” + iValStatic);

error: non-static variable iVal cannot be referenced from a static context

이유는, iVal은 클래스 변수(스태틱 변수)가 아니라 멤버 변수이기 때문입니다. 이럴 경우, 출력하려면 객체를 만들어 준 뒤, 생성한 객체에서 참조변수이름.출력할값을 출력해야 합니다.

또한, 함수(메서드) 내에서 변수를 선언한 뒤, 함수(메서드) 밖에서 실행하게 될 경우,

함수 내에서 선언한 변수는 지역 변수이기 때문에, 출력이 되지 않습니다.

메모리 구조를 통해 이를 설명하면, 지역 변수는 스택 메모리에서 생성됩니다. 함수가 할 일을 다 하고 결과 값을 반환하게 되면, 함수(메서드)에 할당했던 메모리 공간(스택 메모리)을 해제하기 때문에, 지역 변수는 함수 블록 밖에서 출력할 수 없습니다.

함수의 경우도 return의 유무와 public의 유무, static의 유무가 중요합니다.

함수 앞에 static이 있고, return 값이 없는 경우라면, 클래스이름.함수이름(); 으로 출력이 되나, static은 있는데, return 값이 있는 경우라면, 변수타입 새로운변수=클래스이름.함수이름();으로 새로운변수를 지정해준뒤, 출력해야 합니다. 함수 앞에 static, return이 없는 경우라면, new 키워드를 통해 객체를 생성해준 뒤, 참조변수이름.함수이름();로 출력시키면 되나, static은 없는데, return이 있는 경우라면, new 키워드를 통해 객체를 생성해준 뒤, 변수타입 새로운변수=참조변수이름.함수이름();로 새로운 변수를 지정해준 뒤, 출력해야 합니다. 마지막으로, System.out.println()으로 출력할 때도, 리턴이 없는 경우, println()에서 소괄호 안에 입력하면 출력이 되지 않습니다. 반면, 리턴이 있는 경우에는, 변수타입 새로운변수=클래스이름.함수이름(); 혹은 변수타입 새로운변수=참조변수이름.함수이름(); 으로 새로운 변수를 지정해주고, println()에서 소괄호 안에 새로운 변수를 입력하면 출력이 가능합니다.

참고하기 좋은 코드

package a.b.c.ch1; public class ClassTest_practice_3{ //멤버 변수 // 상수 public static final int ID_NUM=1; // 스태틱 변수, 클래스 변수 static int id_val=11; // public이라는 외부에서 사용할 수 있는 // 접근제한자 키워드가 없다. // 전역 변수 public int iVal_G; // static이라는 메모리에 할당하는 수정자 키워드가 빠져있다. // 멤버 변수 int iVal; // public이라는 접근제한자 키워드도 없고, // static이라는 수정자 키워드 없다. //사용자 정의 함수 public void aMethod(){ System.out.println(“aMethod() 등장 두둥”); } // end of aMethod method // return이 없다. 따라서, 리턴형 키워드인 void를 사용했다. // static이라는 수정자 키워드가 없다. public static void aaMethod(){ System.out.println(“aaMethod() 등장 두둥”); } // end of aaMethod method // return이 없다. 따라서, 리턴형 키워드인 void를 사용했다. public int bMethod(){ System.out.println(“bMethod() 돌아가는 중~”); return 1+1; } // end of bMethod method // return이 있다. // 유의해야 할 점은 bMethod 앞에 있는 int와 // return으로 출력되는 1+1의 데이터 타입이 // 모두 int로 동일해야 한다. // static이라는 수정자 키워드가 없다. public static int bbMethod(){ System.out.println(“bbMethod() 돌아가는 중~”); return 10+10; } // end of bbMethod method // return이 있다. // bbMethod앞에 int와 return으로 출력되는 10+10의 // 데이터 타입이 모두 int로 동일해야 한다. // main 함수 등장 public static void main(String args[]){ // static이 있는 친구들 // 멤버변수 중에 상수 불러오기 (static 있음) System.out.println(“ClassTest_practice_3.ID_NUM >>> “+ClassTest_practice_3.ID_NUM+”

“); // 스태틱 변수 불러오기 System.out.println(“ClassTest_practice_3.id_val >>> “+ClassTest_practice_3.id_val+”

“); // aaMethod 불러오기(return이 없어서 println안에 가져다 못 씀) System.out.println(“ClassTest_practice_3.aaMethod는 리턴이 없어서 println에 가져다 못 씀. 불러오기

“); ClassTest_practice_3.aaMethod(); // bbMethod 불러오기 int x=ClassTest_practice_3.bbMethod(); System.out.println(“ClassTest_practice_3.bbMethod >>> “+x+”

“); // static이 없는 친구들을 위해 객체 생성해주기 (인스턴스 생성) ClassTest_practice_3 ec=new ClassTest_practice_3(); System.out.println(“ClassTest_practice_3 ec 주소 >>> “+ec+”

“); // 전역 변수 불러오기 (static 없음) System.out.println(“ClassTest_practice_3 ec.iVal_G >>> “+ec.iVal_G+”

“); // 멤버 변수 불러오기 (static 없음) System.out.println(“ClassTest_practice_3 ec.iVal >>> “+ec.iVal+”

“); // aMethod 불러오기 (static 없음, return도 없음) System.out.println(“ClassTest_practice_3 ec.aMethod는 리턴이 없어서 println에 가져다 못 씀. 불러오기

“); ec.aMethod(); // bMethod 불러오기 (static 없음, 근데 return은 있음) int y=ec.bMethod(); // bMethod 리턴값이 int형이므로 동일하게 x도 int라는 데이터를 담는 변수라는 상자에 할당하여 준다. System.out.println(“ClassTest_practice_3 ec.bMethod는 리턴이 없어서 println에 가져다 못 씀. 불러오기

“); System.out.println(“ClassTest_practice_3 ec.bMethod >>> “+y+”

“); } // end of main method } // end of ClassTest_practice_3 class

마치며..

이번 포스팅에서 static이라는 수정자 키워드의 유무에 따라 메모리에 할당하는 방법에도 차이가 있는 것을 살펴봤고, new라는 키워드를 통해 객체를 생성하여 출력하는 방법도 알아보았습니다. JAVA의 API를 자세히 살펴보면, java.lang.클래스이름에 대한 세부적인 설명에서 static이라는 수정자가 있는 경우도 있고, 없는 경우도 있습니다. static 수정자의 유무에 따라서 메모리에 할당할 때, 적절히 대응하여 잘 사용해야 컴파일을 할 때 오류가 없을 것입니다. 이번 포스팅은 여기서 마치도록 하겠습니다. 😊

[JAVA] 키워드, 식별자, 상수, 제어자

1. 키워드

제어자 : static, final, void, for, while, try, import, if, this, interface, extends, 등등

접근제어자(public, protected, default, private)

int, double, true, false, null, 등등

하지만 Class, NULL, True, System은 키워드가 아니다. (대문자로 시작하면 웬만하면 아니다)

2. 식별자

고유명사로써 대소문자로 구분되고 길이에 제한이 없다.

println, System, HelloJava 등

첫번째 글자 숫자 => 안됨!!

예약어 , 키워드 => 안됨!! (true는 안됨, 하지만 True는 가능)

특수문자 => $랑 _ 빼고 안됨!!

3. 자바 식별자 명명 규칙

– 하나 이상의 글자

– 특수문자는 $, _ 이것밖에 사용 못함.

– 첫 번째 글자에 숫자 불가능, 그 외 가능(물론 $, _ 가능)

– 길이에 제한이 없다.

– 키워드 사용 불가

– 상수 값 단어 사용 불가(true, false, null)

4. 상수

– 상수는 변하지 않는 값을 의미한다

int a ; // a는 변수 a = 1 ; // a는 변수기 때문에 1로 값을 변화시켜줄 수 있다. 1 // 1은 상수 1 = 2 ; // 1은 상수기 때문에 2로 값을 변화시켜줄 수 없다.

5. 제어자

제어자란? : 클래스, 변수, 메서드의 선언부 에 사용되어 부가적인 의미 부여

* 접근제어자

public protected, default, private

메서드 또는 클래스에 대해 접근 범위를 지정

1) public : 다른 패키지라도 Import를 했다면 어떤 경우나 다 가능

2) protected : 다른 패키지라도 상속(extends)을 받은 경우는 사용 가능

3) default : 같은 패키지 안에서 사용가능

4) private : 같은 패키지 + 같은 클래스 안에서만 사용 가능

(상위는 하위의 적용 범위을 포함하고 있음)

* 접근제어자를 제외한 제어자들

final, static, abstract, native, transient, synchronized, volatile, strictfp

1) final

– 변수 또는 클래스를 더이상 변경 가능하지 못하게 만들어버린다

– 변수에 fianl을 붙이면 변수가 상수가 되버림

– 클래스 이름 앞에 final을 붙이면 클래스가 고자가 되버림(상속이 금지됨)

– 클래스의 메서드 앞에 final을 붙이면 오버라이드가 금지됨

2) static

– 변수 앞에 static이 있으면 공유 가능하게 만든다(전역변수)

– 클래스의 맴버변수안에 static이 있으면 같은 클래스끼리 변수를 공유한다

– 클래스의 멤버함수 앞에 static이 있으면 (정적메서드로 만들면) 객체따위 없어도 걍 암데나 공유할 수 있다.

(기능적인 메서드 선언에 쓰임)

ex:)

class Say { static void hello ( ) { System . out . println ( “Hello?” ) ; } } class ex { public static void main ( String args [ ] ) { Say. hello ( ) ; // Hello? 출력 } }

– 클래스 내 정적 변수의 초기값을 넣고 싶으면?? -> 정적 초기화 블록 사용

(C++의 경우는 초기화자 사용)

class NumberPad { static int num [ 5 ] ; static { for ( int i = 1 ; i <= 5 ; i ++ ) num [ i - 1 ] = i ; } static int num2 [ 5 ] ; static { for ( int i = 5 ; i <= 10 ; i ++ ) num [ i - 5 ] = i ; } } class ex { public static void main ( String args [ ] ) { System . out . println ( NumberPad. num [ 2 ] ) ; System . out . println ( NumberPad. num [ 3 ] ) ; System . out . println ( NumberPad. num2 [ 2 ] ) ; System . out . println ( NumberPad. num2 [ 3 ] ) ; } } *참고1) 자바에서는 정적 지역 변수를 쓸 수 없다. package test; class test { public static void main(String[] argv) { static int a =10; // 컴파일 에러 } } * static을 사용한 메서드를 클래스 메서드, static 없이 사용한 메서드를 인스턴스 메서드라고 한다. 3) abstract 클래스의 인스턴스화 를 금지 하는 제어자 - 사용하는 목적 1 : 추상메서드를 가진 추상클래스를 만들기 위함 -> why? : 서브 클레스에서 이 메서드를 반드시 구현하게 만들기 위해서

– 사용하는 목적 2 : 컴파일러의 감시를 피해 서브클래스의 메서드를 실행시키기 위해서 (다형성 실현)

-> why?

package test ; class car { int speed ; void name ( ) { System . out . println ( “original car” ) ; } } class sonata extends car { void name ( ) { System . out . println ( “hyundai” ) ; } } class k5 extends car { void name ( ) { System . out . println ( “k5” ) ; } } public class test { public static void main ( String [ ] args ) { // TODO Auto-generated method stub car car = new car ( ) ; sonata sonata = new sonata ( ) ; k5 k5 = new k5 ( ) ; prn ( car ) ; // original car prn ( sonata ) ; // hyundai prn ( k5 ) ; // k5 } static void prn ( car car ) { car. name ( ) ; } }

1. 슈퍼클래스엔 서브클래스가 대입 가능하다. 1) 자바 컴파일러는 변수의 타입을 가지고 메서드가 있는지 없는지 확인 한다. 2) 이후 JVM은 해당 변수의 타입에 상관없이 객체가 속하는 클래스의 메서드 를 호출한다. car 클래스에서 abstract void name(); 즉 추상메서드를 만들어놓았다면 하위 상속받은 클래스는 무조건 이 메서드를 오버라이드 해야한다 -> 그리고 메서드 한개로 한방에 출력이 가능하다. (다형성 실현 및 설계가 편함)

– 추상메서드는 본체 없이 세미콜론으로 마감 해야됨, 추상 메서드가 있는 클래스는 반드시 추상 클래스로 만들어야됨 abstract class a { abstract void prn(); // c++의 경우는 =0; 을 붙여야 된다. } – 상속시 abstract method를 오버라이드 하지 않으면 컴파일 에러 – 이벤트 핸들러 함수에서 자주 쓰인다

* 공통점 with interface (인터페이스란? http://enderbridge.tistory.com/43 )

=> abstract 메서드가 존재가능

=> 독립적으로 객체 생성 못함

=> 추상메서드를 강제로 오버라이드 해야한다

=> 부모가 자식객체를 가리킬 수 있다

=> 상수를 정의 할 수 있다

* 차이점 with interface

인터페이스 : 다중상속 (관계를 다양하게 맺어준다), 추상메서드만 가질 수 있다. -> 동시개발 , 표준화 를 통한 협업이점

추상클래스 : 일반상속, 일반메서드도 가질 수 있다. 조상클래스로서 의미를 갖는다. 설계도 의 역활

공통점 차이점 비유설명 = http://egloos.zum.com/goodLand/v/857536

4) native

5) transient

6) synchronized

7) volatile

8) strictfp

6. Method Signature

메소드 구분에 사용되는 메소드 이름, 파라미터 변수의 수, 타입, 순서

ex:)

void update(int age) void update(int age, double weight) // 메서드 이름은 같지만 시그니쳐가 다르다

So you have finished reading the 자바 키워드 topic article, if you find this article useful, please share it. Thank you very much. See more: 자바 키워드 정리

Leave a Comment