본문 바로가기
반응형

Language252

자바 초기화는 무슨 뜻이고 왜 해야할까? 자바 초기화로 검색을 해 보면 생성자와 묶어서 많이 나오는데 초기화는 생성자(Constructor)에서 변수 값 주는게 초기화인가? 이런 생각이 든다 물론 생성자에서 변수에 값 주는것도 초기화는 맞는데 생성자에서 값 주는것만 초기화가 아니다 간단하게 예제를 통해 알아보면 The local variable a may not have been initialized 에러가 뜨는 것이 보이는데 변수를 초기화(initialized)하지 않아서 에러가 뜨는 것이다 int a = 1; 을 해 주면 초기화가 되고 정상적으로 출력이 되는데 여기서 초기화가 무슨 뜻인지 간단하게 알 수 있다 자바에서 초기화(initialization)란 객체를 선언하고 값을 '최초'로 할당하는 것이다 int a = 10; 이렇게 작성한 것.. 2019. 10. 17.
프로그래머스 피보나치 수(Java) 사이트명 : 프로그래머스(Programmers) 문제명 : 피보나치 수 언어 : 자바(Java) 일단 피보나치 수를 풀기에 앞서서 문제 개념을 좀 알고 넘어가야 하는데 n은 항상 2 이상으로 들어오며 F(0) -> 0 F(1) -> 1 고정이다 F(2) -> F(0) + F(1) = 0 + 1 F(3) -> F(1) + F(2) = 1 + 1 .... 이런 식으로 이어진다 n 값이 10이라면 F(8) + F(9)를 해서 주면 되는 것이다 여기에 함정이 문제 설명을 이상하게 해놔서 정답을 제대로 뽑아내려면 만약 n이 10일 경우 (F(8) % 1234567) + (F(9) % 1234567) F(n) 값도 % 1234567을 해서 return 시켜야 한다 내 풀이방법은 아래와 같은데 일단 F(n)을 구하려.. 2019. 10. 16.
프로그래머스 짝지어 제거하기(Java) 사이트명 : 프로그래머스(Programmers) 문제명 : 짝지어 제거하기 언어 : 자바(Java) 같은 알파벳이 두개가 붙어있다면 두 알파벳을 제거하는데 모든 알파벳을 제거 가능하다면 1 모두 제거를 못했으면 0을 반환하는 문제다 내 풀이방법은 아래와 같은데 Stack을 사용해서 문제를 풀어줬다 먼저 스택은 LIFO(Last In First Out) 방식으로 값을 처리하게 되는데 한글자씩 잘라서 스택에 넣어주다가 넣어준 글자와 다음 글자를 비교해서 같으면 스택에 들어간 글자를 pop으로 지우고 아니면 스택에 push로 쌓아주고 이런 식으로 진행이 가능하다 for 문을 돌려 String을 글자 하나씩 잘라 넣어주면서 스택에 아무 값이 없거나, 현재 글자와 다음 글자가 다르다면 스택에 push로 넣어주고 .. 2019. 10. 16.
자바 extends, implements 차이점 알아보기 자바에서 extends와 implements는 아예 쓰임새가 다른데 잘 모르고 사용하다 보면 차이가 뭔지 헷갈린다 차례대로 한번 알아보자 먼저 extends인데 위의 ExtendsMe 클래스는 ExtendsImplements 클래스에서 상속받을 클래스이다 extends를 통해 ExtendsMe 클래스를 상속받고 객체화하면 부모 클래스(ExtendsMe)의 메소드, 변수를 사용할 수 있다 객체화가 뭔지 잘 모르겠다면 아래 글을 참조하자 자바 객체화(인스턴스화) 알아보기 위 스크린샷을 보면 ObjectTest 클래스 영역에 정의한 i를 출력하려고 해도 에러가 뜨면서 출력이 되지 않는 것이 보이는데 i로 선언한게 없는데 i 값을 어떻게 가져옴? 이런 에러가 뜨는 것이다 클래스는 메소드.. wakestand.t.. 2019. 10. 14.
자바 생성자란 무엇인가? 생성자 이러면 감이 안오는데 영어로 Constructor라고 써도 역시 감이 안온다 한자 시간과 영어 시간에 너무 잠을 많이 잤기 때문이리라 생성자는 객체화 시 초기화 해주는 역할을 담당하는데 객체에 뭔가 값을 넣어주거나 할 때 사용한다는 말이다 생성자는 1. 클래스명과 메소드명이 동일해야 하고 2. 리턴 타입이 없어야 한다 이 두 규칙을 지켜서 만들어주면 되는데 예를 들어 객체에 특정 값을 넣어주고 싶을 경우 위 스크린샷처럼 파라미터를 받아서 생성자에 넣어주면 나중에 객체명.생성자에서_만든_변수 를 통해 사용할 수 있다 생성자의 개념을 이해하기 전에 객체화, this의 개념을 좀 알아둘 필요가 있는데 아래 글을 참조해주면 된다 자바 객체화(인스턴스화) 알아보기 위 스크린샷을 보면 ObjectTest 클.. 2019. 10. 13.
자바 필드, 멤버 변수, 전역 변수는 같은 말? 지금까지 필드가 클래스 영역 안을 의미하는지 알았는데 그게 아니더라 정의를 보니까 Java에서 Field는 클래스 안에 있는 변수(variable)라고 한다 즉 필드 안에 들어있는 전역 변수, 멤버 변수 이런게 아니라 필드가 클래스 영역 안에 있는 변수를 말하는거다 그래서 필드 안에 있는 전역 변수.. 이런 식으로 말하면 전역 변수 안에 있는 전역 변수.. 이렇게 말하고 있었던 거다 정리해보자면 클래스 영역에 정의한 변수는 필드, 전역 변수(global variable), 멤버 변수(member variable)로 부르고 메소드 안에 있는 변수는 지역 변수(local variable)이 되겠다 2019. 10. 13.

반응형