반응형 전체 글1036 자바 필드, 멤버 변수, 전역 변수는 같은 말? 지금까지 필드가 클래스 영역 안을 의미하는지 알았는데 그게 아니더라 정의를 보니까 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. 자바 오버라이드, 오버로드 차이 알아보기 Parent 클래스를 Child 클래스가 상속(extends) 받은 뒤 Child 를 c라는 이름으로 객체화해서 c의 call 메소드를 호출하는 코드인데 이 코드를 가지고 오버라이드와 오버로드의 차이를 알아보자 먼저 오버라이드(Override)인데 Child 클래스에도 동일하게 call 메소드를 작성하고 call method를 호출하니 처음 스크린샷처럼 Parent 클래스의 call method가 호출되는 것이 아닌 Child 클래스의 call method가 호출되는데 오버라이드란 부모 클래스에 정의되어 있는 메소드명을 자식 클래스에서 동일하게 작성한 것을 말하는 것이다 여기서 동일한 이름의 메소드 호출 시 부모 메소드가 아닌 자식 메소드가 호출된다 다음은 오버로드(오버로딩)인데 오버로드란 동일한 이름의.. 2019. 10. 10. 자바 Statement PreparedStatement 차이 알아보기 Java에서 Statement와 PreparedStatement중 골라 사용하라 하면 대부분 그냥 PreparedStatement를 사용하라고 할텐데 문제는 왜 PreparedStatement를 써야하냐는 것이다 먼저 Statement는 파라미터( SQL에 ? 들어가는 부분, 매개 변수라고도 함)를 전달해줄 수 없기 때문에 파라미터를 전달해주려면 이런 식으로 사용해줘야 한다 쓰기도 불편하고 쿼리문 수행 시마다 매번 컴파일을 하기 때문에 해당 쿼리문을 여러번 수행하는 경우 효율이 떨어진다 Statement를 사용하는 것이 좋은 경우는 Dynamic Query(Query문에 ?(파라미터)가 들어가는)를 사용하지 않는 Normal SQL Query시 사용하는 것을 권장하는데 SQL 문으로 단 한번만 조회하거나.. 2019. 10. 7. 이전 1 ··· 158 159 160 161 162 163 164 ··· 173 다음 반응형