- 항상 공부를 하는 데 있어서, 여러 사람들이 메타인지가 중요하다고 말했고, 나 또한 메타인지가 중요함을 깨닫고 대학교 때 부터 메타인지를 하려고 노력했다. 메타인지를 무언가를 공부할 때 중요한 것이다. 메타인지란 , 내가 아는 것이고 무엇이고 , 내가 모르는 것이 무엇인지에 대해 파악하는 것이다. 많은 사람들은 자신이 공부를 하면서, 알고 있는 것만을 주구장창 보는 데에 시간을 낭비하고 , 실제로는 자신이 모르는 것에는 시간을 쏟지 않는 경우가 존재한다. 따라서 , 제대로 공부하기 위해서는 메타인지가 중요하다. 학원을 다니면서, 주위 친구들에게 어떻게 메타인지를 할 수 있는 지를 물어봤다. 내가 지금까지 해오던 공부는 암기에 가까웠기에 혼자 시험을 보거나, 문제를 풀어보면서 어떠한 것을 모르고 내가 어떠한 것은 잘 아는 지 알 수 있었다. 그러나, 코딩 공부를 하면서, 선생님께서 설명해주시는 것에 대해 보면 , 코드를 보면 다 이해하는 것 같았다. 제로베이스 부터 똑같은 결과를 도출하기 위해 코드를 짜보라고 하셨는데, 어떻게 시작해야할 지 막막했다. 친구들의 도움을 통해, 코드를 깜지를 하거나 자신이 처음부터 코드를 고안해보고 짜보면서 내가 아는 것이 무엇이고 모르는 것이 무엇이니지 알 수 있겠된다는 것을 알게되었다. 메타인지를 통해서 보니, 초반에 배운 것으로 기본생성자와 생성자의 오버로딩에 대해 알고 있다고 생각했었는데, 자세히 알지 못했고, 이를 머릿속에 저장을 하려고 이렇게 블로그 글로 적어봅니다.
글의 내용에 있어서 고쳐야 할 부분이나 자신만의 특별한 코딩 공부 방법이 존재하신다면, 댓글 달아주시면 감사하겠습니다.
우선 , 클래스에 대해서 설명해보도록 하겠다. 클래스는 필드 ( field ) ( = 멤버변수) 와 메소드( method )로 이루어져 있습니다. 멤버변수는 클래스를 통해 객체를 만들 때 유일하게 포함되는 요소 이기때문에, 멤버변수가 무엇인지 파악하는 것이 중요하다.
public Signup ( ) { } // <=기본 생성자 // 값을 초기화하기 위해 존재
=> Signup mbr1 = new Signup( ) ;
mbr1.id = " IU " , mbr1.pwd = "abcd1234" ;
public Signup ( String id , String pwd ) { this.id = id ; this.pwd = pwd ; } // 생성자의 오버로딩
=> Signup mbr2 = new Signup( "IU" , "abcd1234" ) ;
기본생성자와 생성자의 오버로딩을 만드는 방법은 위와 같다.
기본 생성자란, 매개변수가 없는 생성자로, 멤버변수를 기본값으로 초기화 한다. 생성자가 하나도 정의되지 않은 클래스에는 기본생성자가 자동으로 제공되지만, 생성자의 매개변수를 다르게 지정하는 생성자의 오버로딩을 하는 경우, 기본생성자는 자동적으로 제공되지 않는다. 그러하여 , 필드를 사용하기 위해서는 기본생성자를 만들어줘야 한다.
그렇다면 , 여기서 말하는 생성자의 오버로딩이란 무엇일까? 네이버 국어사전에서 오버로딩의 정의를 찾으면 다음과 같이 나온다. 오버로딩이란 , 프로그램 작성 언어에서 동일한 표현으로 여러가지 의미를 가질 수 있는 것이라고 한다. 그렇다면 , 생성자를 오버로딩 한다는 것은 어떠한 의미 일까? 위에서 처럼, "Signup" 이라는 동일한 메소드 명을 가짐에도 둘은 중복으로 표시 되지 않고 서로 다른 메소드로 본다는 것이다.
그렇다면 , 어떠한 경우에 생성자를 만들 때 중복이 생기는 것일 까? 그것은 파라미터와 관련이 있다. 생성자가 가지고 있는 파라미터의 갯수가 같고, 각각의 타입이 모두 같은 경우 중복으로 본다는 것이다. 다시 말하자면, 파라미터의 갯수가 다르거나, 타입이 다른 경우는 서로 다른 메소드로 보고, 위와 같이 같은 메소드명을 가지지만 다른 뜻을 가질 수 있음을 의미한다. 오버로딩은 생성자 뿐만 아니라 메소드에서도 사용되기 때문에 자세히 알아놓아야 할 필요가 있다. 또한 , 오버로딩과 오버라이딩의 차이점에 대해서 자세히 알고 있어야 할 필요가 있고, 이는 뒤의 블로그 내용에서 더 자세히 설명하도록 하겠다.
위에서 사용된 this 예악어의 용도도 알 필요가 있는데, this 변수나 메소드 앞에 사용할 수 있는데 , this의 용도는 this와 결합된 변수는 자동적으로 멤버변수를 의미하게 되는 것이다.
위의 내용을 잊지 않고 잘 기억할 수 있도록 노력해야겠다.
''국비지원'의 시작' 카테고리의 다른 글
자바 비긴즈 11 ( 추상화[abstraction] , 캘린더[calendar]) (0) | 2023.01.17 |
---|---|
자바 비긴즈 10 ( 1차원 배열 , 2차원 배열 (Array) ) (0) | 2023.01.15 |
자바비긴즈 08 (random , 반복문) (0) | 2023.01.13 |
자바 비긴즈 07 ( while문, do while문 ) (0) | 2023.01.10 |
자바 비긴즈 06( FOR문, IF문 , SWITCH문 ) (0) | 2023.01.09 |