반응형 Language/Java133 자바 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. 자바 클래스, 객체, 인스턴스 구분하기 먼저 클래스란 메소드와 변수를 담아놓은 집합인데 이걸로는 아무것도 할 수가 없다 클래스를 설계도(Blueprint)라고도 하는데 클래스를 객체화(인스턴스화) 해야 명명한 클래스 타입의 값(위 스샷에서는 ot)로 사용을 할 수 있다 다음으로 객체와 인스턴스는 매우 유사하기 때문에 구분을 하는 것이 큰 의미가 없는데 다만 그래도 구분을 해 보자면 클래스를 특정 이름으로 선언만 했을때는 객체라고 하고 그 객체 안에 값을 넣어줬을 때를 인스턴스라고 한다 구분을 지을 수 있긴 하지만 Stack overflow를 뒤져보고 구글링을 해 본 결과 객체와 인스턴스는 동일하다고 봐도 되며 객체라고 말하는 사람이나 인스턴스라고 말하는 사람이나 동일한 의미로 사용하고 있으므로 객체라고 말하면 나도 따라서 객체라고 맞춰주고 인.. 2019. 10. 12. 자바 객체화(인스턴스화) 알아보기 위 스크린샷을 보면 ObjectTest 클래스 영역에 정의한 i를 출력하려고 해도 에러가 뜨면서 출력이 되지 않는 것이 보이는데 i로 선언한게 없는데 i 값을 어떻게 가져옴? 이런 에러가 뜨는 것이다 클래스는 메소드와 변수들을 모아 놓은 설계도(Blueprint)에 불과하기 때문에 객체화를 해서 클래스의 정보들을 객체 안에 담아줘야 사용 가능한데 현재는 객체화를 하지 않고 클래스에 들어있는 값을 가져오려고 하니 안되는거다 따라서 객체화를 해 줘야하는데 객체화는 어떻게 하냐면 일단 ObjectTest 타입의 ot를 선언하고 ot = new ObjectTest(); 를 해 줘서 ot 안에 ObjectTest 클래스의 정보를 넘겨준다는 얘기다 설명을 위해서 두개로 쪼갰는데 대부분의 경우에는 ObjectTest.. 2019. 10. 12. 자바 this, super 차이 알아보기 자바의 this부터 먼저 알아보자면 왼쪽 스크린샷에서 클래스 영역의 변수 value는 10으로 주고 ThisSuperTest 를 객체화하면서 파라미터에는 1을 넣어 줬는데 생성자에서 이 1을 value로 받아 사용하기에 실제 value를 호출해보면 클래스 영역에 정의한 10이 호출되는 것이 아니라 파라미터로 넣은 1이 호출이 된다 이제 우측의 스크린샷을 보면 동일한 이름의 value 변수여도 this. 를 붙여주면 클래스 영역에 정의한 value 변수를 호출해서 10이 호출되는 것이 보인다 즉 this.는 동일한 이름의 변수가 사용될 경우 클래스 영역에서 정의한 변수를 식별하기 위해 사용한다는 것! 다음으로는 super인데 super는 상속받은 메소드나 변수를 호출할 때 사용한다 보면 ThisSuperT.. 2019. 10. 11. 이전 1 ··· 18 19 20 21 22 23 다음 반응형