 1. Visual Basic.NET의 소스파일에는 무엇이 들어있나?
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()라는 메소드를 호출하라는 뜻
– 메시지 = 참조변수 + 점(.)연산자 + 메소드
