개발자의 공부방/자바 자바 기초] 변수와 자료형 그리고 참조형 - 728x90 반응형 변수와 자료형 그리고 참조형1. 변수와 자료형변수를 선언할 떄, 저장되는 값의 자료형을 선언메소드를 선언할 때, 반환 값의 자료형을 선언자료형에 따라 적용 가능한 연산이 다름1) 변수의 종류인스턴스 변수 : (클래스 정의에서 static이 아닌 필드) 객체가 소유하는 변수클래스 변수 : (클래스 정의에서 static 필드) 객체가 공유하는 변수지역 변수 : 메소드 내부에서 선언된 변수파라미터 : 메소드 호출 시 전달하는 값을 저장하기 위한 변수public class Array { int iNumber; //인스턴스변수 static int bNumber; // 클래스변수(static변수, 공유변수), '전역변수'라고 한다. boolean hello = false; // 인스턴스변수 /* * 클래스변수 + 인스턴스 변수 = '맴버변수' * 클래스 변수와 인스턴스변수를 합쳐서 맴버변수 라고 한다. * 인스턴스 변수는 class 내부에 위치한다. * 또한 객체를 생성!해야만 사용할 수 있다. * (객체는 new 연산자를 통해서 생성) */ void method() { Array instanceNumber = new Array(); instanceNumber.iNumber = 3; // 이렇게 new 연산자로 객체를 생성 및 인스턴스변수를 사용한다. int c = 0; // 지역변수 } public static void main1(String[] args) { /* * 인스턴스 변수 앞에 static을 붙여주면 클래스 변수라고 한다. * 인스턴스 변수는 각 인스턴스 마다 독립적인 저장공간을 갖습니다. 하지만 클래스 변수는 인스턴스가 같은 저장공간을 공유합니다. * 이 말은 static은 최상위의 개념을 갖고 있기 때문에 인스턴스를 생성하기 전에 메모리에 올려놔 고정시킨다. * 그렇기 때문에 인스턴스 변수를 공유변수라고도 하고 특히나 new 연산자를 사용해서 불러올 필요도 없고, 인스턴스 생성없이 바로 사용이 가능하다. * * 그리고 '전역변수' 라고 부른다. */ System.out.println("클래스변수는 인스턴스화 하지 않아도 사용 가능!"+Array.bNumber); Array ar = new Array(); ar.hello = true; System.out.println("인스턴스화를 해서 hello변수를 불러옴!"+ar.hello); int x = 100; // 지역변수 System.out.println("지역변수 입니다!"+x); /* * 지역변수는 맴버 변수를 제외한 나머지 변수들을 말한다. * 즉, class 영역이 아닌 다른 블럭 {} 에 존재하면 지역변수이다. * 지역 변수가 선언된 블록을 벗어나면 그 지역변수는 사라진다.(소멸되서 사용할 수 없다.) * ex) for문, while문에서 사용되는 변수가 '지역변수' */ }2) 변수의 사용 범위지역변수와 파라미터- 선언된 곳 부터 해당 블럭이 {} 이 종료될 때 까지 유효함 (메서드가 실행될 때 만들어지고 끝나면 없어짐)- 지역 변수는 초기값을 지정한 후 사용해야 함- 지역 변수 선언에서 접근 제어자를 사용하지 않음 데이터 필드 (인스턴스 변수 or 클래스 변수)- 선언된 클래스 내부에서 사용 가능.- 클래스 외부에서의 사용 여부는 '접근 제어자(access modifier)'에 따라 다름ex) class Variable { public int VAR; …}기본형(primitive type)분류 키워드 길이(byte) 값의 범위 문자 char 2 '\u0000' ~ '\uFFFF'유니코드 문자열논리 boolean 1 treu or false정수 byte 1 -128 ~ 127 short2-32,768 ~ + 32,767int4-9,223,372,036,854,775,808~ long8 +9,223,372,036,854,775,807 실수float4 단정도 실수형 (유효 자리는 7정도)doblue8 배정도 실수형 (유효 자리는 15정도)참조형(reference type)기본형을 제외한 모든 자료형.참조 값(주소)을 가지는 자료형.자바 API에서 제공되거나 프로그래머에 의해서 만들어진 클래스를 자료형으로 선언하는 경우배열, 클래스 형 등..int anArray[];Circle myCircle;String szStr;참조형 변수는 저장 공간에 참조 값을 저장함.실제 데이터는 별도의 공간에 저장됨기본형 변수는 저장 공간에 값 자체를 저장함.참조변수는 말그대로 참조할 수 있어서 클래스의 이름을 갖고 만들 수 있다.클래스이름 변수이름; // 변수의 타입이 기본형이 아닌 것들은 모두 참조변수!예를 들어서 class ASD {} 라는 것을 만들어서 class TEST{} 에서 ASD를 사용(?) 하려면 그냥 ASD test; 이렇게 사용할 수 있다. 반응형 공유하기 URL 복사카카오톡 공유페이스북 공유엑스 공유 게시글 관리 구독하기준수한쭈니네 저작자표시 Contents 당신이 좋아할만한 콘텐츠 자바 기초] 형변환 2019.03.06 자바 기초] 상수와 리터럴 2019.03.06 자바 기초] 식별자 2019.03.06 자바 기초] 자바란? 2019.03.06 댓글 0 + 이전 댓글 더보기