1. Visual Basic.NET의 소스파일에는 무엇이 들어있나?
– 확장자가 .vb인 소스코드 파일에서는 클래스를 정의
1 2 3 |
Public Class Dog '클래스 End Class |
– 모듈(module) -> 암시적으로 공유되는 클래스의 특수 형태로 볼 수 있음
2. 클래스(class) 안에는 무엇이 들어 있나?
– 메소드(method)가 한 개 이상 들어 있음
1 2 3 4 5 |
Public Class Dog Sub Bark() '메소드 End Sub End Class |
3. 메소드 안에는 무엇이 들어 있나?
– 처리할 일을 지시하는 내용이 들어있음
-> 일련의 명령문이 들어 있음
1 2 3 4 5 6 |
Public Class Dog Sub Bark() Statement1 '명령문 Statement2 End Sub End Class |
4. 클래스를 해부한다면?
비베닷넷에서는 프로그램을 실행시키기 위한 Main함수, 클래스, 폼을 지정해야 함
시작 함수로서의 Main에 대한 정의는 어떻게 하는가?
1 2 3 4 |
Public Class MyFirstApp Public Shared Sub Main() End Sub End Class |
콘솔프로그램을 작성하고자 한다면 다음과 같이 하면 된다.
1 2 3 4 5 6 |
Public Class MyFirstApp Public Shared Sub Main() Console.WriteLine("Hello, World.")'내용을 콘솔에 출력한다. Console.ReadLine()'사용자의 입력을 받아들인다. End Sub End Class |
5. Main함수를 가지고 윈도우 프로그램을 실행하려면?
1) Application.Run 메소드를 이용
1 2 3 4 5 6 |
Public Module StartModule Public Sub Main() Dim frm As New Form1() Application.Run(frm) End Sub End Module |
프로그램을 끝낼 때는 Application.Exit()라고 하면 된다.
2) 폼의 ShowDialog메소드를 이용
1 2 3 4 5 6 7 |
Public Module StartModule Public Sub Main() Dim frm As New Form1() frm.ShowDialog() 'modal window를 보여줌. '윈도우가 닫힐 때까지는 Main()의 다른 명령은 실행되지 않음 End Sub End Module |
3) 폼의 Show메소드를 이용
1 2 3 4 5 6 7 |
Public Module StartModule Public Sub Main() Dim frm As New Form1() frm.Show() 'modeless window를 보여줌. 'Main()가 계속 실행됨 End Sub End Module |
6. 메소드(method)란?
1) 뭔가를 하는 것
명령문 : 선언, 대입, 메소드 호출 등
2) 뭔가를 여러 번 반복하는 것
순환문 : For, While
For : 반복횟수를 알 때
While : 반복횟수를 모르며, 탈출조건은 알 때.
3) 조건에 따라 뭔가를 하는 것
분기문 : If/Else, Select Case
7. 그렇다면 클래스는 어떻게 설계해야 하는가?
– 클래스를 설계할 때믄 그 클래스 유형으로부터 생성되는 객체에 대해 생각한다.
객체에서 아는 것 -> 인스턴스 변수
객체에서 하는 것 -> 메소드
– 이 클래스가 무엇을 할 것인가(역할-> 메소드)를 먼저 생각한다.
1 2 3 4 5 6 7 8 |
Public Class Song Dim m_Title As String '아는 것 -> 인스턴스 변수(상태) Dim m_Artist As String ' Sub SetTitle() '하는 것 -> 메소드(행동) Sub SetArtist() Sub Play() End Class |
– 클래스와 객체 사이에는 어떤 차이가 있는가?
클래스는 객체(인스턴스)를 만들기 위한 청사진 -> 그 유형의 객체를 만드는 방법을 알려주는 역할을 한다
클래스는 하나이나 객체는 여럿이 될 수 있다.
8. 점(.) 연산자
– 클래스 내부의 상태와 행동을 어떻게 참조/호출하는가?
– 점(.) 연산자는 객체의 상태(인스턴스 변수)와 행동(메소드)을 접근할 수 있게 해주는 역할을 한다.
1 2 3 |
Dim myDog As Dog = New Dog() '새로운 객체를 만든다. myDog.Bark() '점 연산자를 myDog변수에 적용하여 Bark()메소드를 호출하여 그 개가 짖도록 한다. myDog.m_Size = 40 '점 연산자를 써서 그 크기를 설정한다. |
1 2 3 4 5 6 7 8 9 |
Public Class Dog Dim m_Size As Integer '***실제 코딩에서는 상태를 직접 바꾸는 것을 피하자. 상태는 Private으로 선언하여 숨긴다. Dim m_Breed As String Dim m_Name As String ' Public Sub Bark() Console.WriteLine("멍멍") End Sub End Class |
9. 결국 비베닷넷의 프로그램은 무엇이라 할 수 있는가?
-클래스를 통해여 만들어진 객체들의 연극
– 비베닷넷 프로그램이란 객체가 다른 객체와 대화하는 것에 불과함
– 대화한다는 것은 객체에서 서로 다른 객체의 메소드를 호출하는 것을 의미함.
1 |
myDog.Bark() |
-> myDog에게 Bark하라고 말함
-> myDog에게 Bark하라는 메시지를 전함
-> myDog이라는 변수로 참조할 수 있는 객체를 이용하여 Bark()라는 메소드를 호출하라는 뜻
– 메시지 = 참조변수 + 점(.)연산자 + 메소드