[F-Lab 모각코 챌린지 4일차] TIL

JeongheeKim·2023년 6월 4일

TIL

목록 보기
4/66

학습계획


  • 자바의신 4장 읽고 정리하기
  • 자바의신 4장 연습문제풀기

Today I Learned


java에서 변수의 종류

public class VariableType {
	int num;//인스턴스 변수
	static int num2;//클래스 변수
	public void method1(int num3) {//매개변수
		int num4;//지역변수	
	}

}
  • 지역변수
  • 매개변수
  • 인스턴스 변수
  • 클래스 변수
    • static키워드가 붙은 변수
    • 메소드 밖, 클래스안에 선언된 변수

변수 이름 규칙

  • 길이제한없음
  • 첫문자는 알파벳, $,로 시작할 수있지만 $,는 잘 사용하지 않는다.
  • 보통 메소드는 카멜케이스를 사용한다.
  • 상수는 모두 대문자를 사용하며 단어와 단어사이에는 _를 넣는다.

자료형

  • 내가 직접 만들 수 있으면 참조자료형, 만들 수 없으면 기본 자료형

Primitive 타입 - 기본 자료형

  • boolean
  • 숫자형
    • 정수형
      • byte, short, int, long, char
        • long 타입을 선언할 경우 숫자 뒤에 L을 붙여야한다. 붙이지 않으면 int취급한다. Untitled
          public class Test {
          	public static void main(String[] args) {
          		//long longMax = 9223372036854775807;//컴파일 에러
          			long longMax = 9223372036854775807L;
          	}
          }
    • 소수형
      • float, double(32, 64비트)
        • 돈 계산시 32비트,64비트를 넘는 범위가 되버리면 값의 정확성을 보장할 수 없다.
        • 돈 계산을 할때는 BigDecimal타입(참조형)을 사용해야 한다.
          • BigDecimal
            • 참조타입
            • BigDecimal 생성 시 String을 넘겨주는데 double형을 넘길 경우 double형 값을 비트로 나타낸 근사치 값을 리턴받아 사용하므로 정확하지 않은 값을 사용하게 된다.
          • 컴퓨터에서는 2진법을 사용하는데 소수점 계산의 경우 정상적으로 보장되지 않는다.
            0.2 + 0.2 => 0.00110011....+ 0.00110011....//0.4값으로 계산되지 않음
    • 자료형의 범위
      • int : 2의 31승부터 2의 31승 - 1
        • 맨뒤에 -1이 붙는 이유는 4바이트(32비트)의 int형 정수의 음수를 표현하기 위한 부호 한비트
    • 기본값
      • 기본자료형의 값을 지정하지 않으면 기본자료형의 기본값을 사용한다.
      • 지역변수로 기본 자료형을 사용할 시, 반드시 값을 지정해야한다.
        • 인텔리제이서 지역변수 값을 셋팅 하지않았을 경우 초기화 하라는 경고 메세지를 띄운다.

          Untitled

Reference 타입 - 참조 자료형

기본 자료형 이외의 자료형 타입.

참조 자료형은 생성자를 통해 생성하는데 생성자가 없을경우 컴파일 시 자동으로 기본생성자를 만들어준다.

public class Test {
	public Test() {}

	public static void main(String[] args) {
		Test test = new Test();
	}
}

단, 다른 매개변수를 받는 생성자가 있다면 기본생성자를 자동으로 만들어주지 않으므로 따로 생성해야한다.

public class Test {
	public Test() {}
	public Test(String str) {}

	public static void main(String[] args) {
		Test test = new Test();
	}
}
  • 참조 자료형의 초기화

new키워드를 통해 초기화 한다.

Caculator caculator = new Calculator();

예외 케이스로 String 초기화 시에는 String test = “test”;와 같이 초기화 한다. String은 참조자료형 생성방법과 동일하게 String test = new String(”test”); 도 가능하지만 리터럴 방식을 사용한다.

  • 생성자에 매개변수를 전달하여 객체를 초기화하는 방법에서, 특히 매개변수의 타입이 다른 경우 어떤점을 주의해야하나?
    • 타입이 다른경우
      • IDE에서 문법적 오류라고 알려주지만 개발자가 이 객체를 생성할 때 어떤 타입의 매개변수로 객체가 생성되는지 확인해야한다.

        public class Test {
        	private String test;
        	public Test(String str) {
        		this.test = str;
        	}
        
        	public static void main(String[] args) {
        		int tmp = 0;
        		Test test = new Test(tmp);
        	}
        }
    • 매개변수 개수가 다른 경우
      • 개발자의 의도와 다르게 객체가 생성될 수 있으므로 매개변수 개수 확인이 필요하다.
    • 매개변수로 전달하는 변수가 초기화 되지 않은 경우
      • 기본 자료형의 경우 기본값이 있지만 참조자료형의 경우 초기화 하지않아 객체 생성 시 문제가 될 수 있으므로 항상 초기화 하는 습관이 중요하다.
        • 객체 초기화 방법
          1. setter
          2. 리터럴 방식으로 객체 초기화 (예: String)
          3. DI 프레임 워크를 통해 객체 초기화
          4. 객체를 복사하여 초기화
          5. 팩토리 메서드를 사용하여 객체 초기화 ( 이 방식은 아직 모르겠다..)

자바의 신 연습문제

직접해봅시다

public class ProfilePrint {
	String name;
	byte age;
	boolean isMarried;

	public byte getAge() {
		return age;
	}

	public String getName() {
		return name;
	}

	public boolean isMarried() {
		return isMarried;
	}

	public void setName(String name) {
		this.name = name;
	}

	public void setAge(byte age) {
		this.age = age;
	}

	public void setMarried(boolean married) {
		isMarried = married;
	}

	public static void main(String[] args) {
		ProfilePrint profile = new ProfilePrint();
		profile.setName("Min");
		profile.setAge((byte)20);
		profile.setMarried(false);
		System.out.println("profile.getName() = " + profile.getName());
		System.out.println("profile.getAge() = " + profile.getAge());
		System.out.println("profile.isMarried = " + profile.isMarried);
	}
}

정리해봅시다

  • 네가지 종류 변수는 어떻게 구분할 수 있나요?
    • 지역변수, 인스턴스 변수, 클래스 변수, 전역변수로 구분할 수 있다.

일반 변수의 이름을 지을 때 대문자로 시작하는 것은 일반적인 명명규칙이다.

  • 아니오
  • 자료형에는 기본 자료형과 어떤 자료형이 있나요?
    • Object 조상클래스를 상속받은 참조자료형이 있다.
  • 기본 자료형에는 몇가지가 있나요?
    • 정수형, 소수형, boolean 크게 3가지가 있다.
  • 기본 자료형 중 정수형에는 어떤 것들이 있나요?*
    • int, long, char, byte, short가 있다.
  • byte는 몇 비트(bit)로 되어 있나요?*
    • 4비트
  • byte 타입은 왜 만들었을까요?*
    • 자료형의 최소 단위로 만약 최소 단위가 int단위면 4배 더 많은 공간을 차지하므로 최소단위를 조합하여 데이터를 표현하기 위해
  • int와 long중 어떤 타입이 더 큰 숫자를 처리할 수 있나요?*
    • long, long은 2의 63승 -1 자리수 까지 최대 표현 할 수 있다.
  • 소수점을 처리하는 타입은 어떤 것이 있나요?*
    • double, float
  • char는 정수형인가요?*
  • a라는 값을 char로 정의할 때 어떤 기호로 감싸주어야 하나요?*
    • 싱글 쿼테이션 char a = ‘a’;
  • true와 false 두개의 값만을 가지는 타입은 어떤 것인가요?
    • boolean

참조

https://jerry92k.tistory.com/6

0개의 댓글