ㅇ. 상속 (Ingeritance)
-. 클래스 정의 이후 해당 클래스를 상속받아 새로운 클래스를 생성
-. 부모 클래스(base class)의 메서드를 파생된 클래스(child class)에서 새롭게 구성할수 있다.
-. 기본적으로 모든 클래스는 상속가능
-. Form등의 User Interface를 갖는 상속은 Visual Inheritance라고 한다.
In VB.NET
ㅇ. 메서드 오버라이딩 (Overriding Method)
-. Inheritance와 관련
-. Base Class에서 새로운 Child Class를 파생시킬때 기존의 Method를 새롭게 정의함
-. Base Class에서 Overridable로 명시된 것만 재정의 가능함
-. ex)
ㅇ. 생성자와 소멸자 (Constructor, Destructor)
-. 생성자 : 새로운 개체의 초기화를 제어하기 위한 프로시져
소멸자 : 클래스가 범위를 벗어나거나 Nothing으로 설정되면 시스템의 자원을 해제하기 위한 Method
-. 클래스 사용자는 자원의 해제에 대한 부분을 신경쓰지 않고 사용할수 있으므로 편의성이 증대
-. 클래서 설계자는 반드시 신경써야 하는 부분
-. ex)
ㅇ. 공유 멤버 (Shared Member)
-. 클래스의 모든 인스턴스에 의해 공유되는 속성이나 프로시져
-. ex)
실행결과 --->
-. 상기 결과와 같이 하나의 메모리 공간을 사용하기 때문에 Load에 대한 값이 변하게 된다.
ㅇ. 자유 스레드 (Free Threading)
-. 다중 작업을 독립적ㅇ로 실행할 수 있는 응용프로그램 작성
-. 새로운 스레드 생성시..
: System.Threading.Thread 유형의 변수 선언
: AddressOf 연산자를 사용한 생성자 명시
Dim tmpThread As New System.Threading.thread(AddressOf MySub)
-. 클래스 정의 이후 해당 클래스를 상속받아 새로운 클래스를 생성
-. 부모 클래스(base class)의 메서드를 파생된 클래스(child class)에서 새롭게 구성할수 있다.
-. 기본적으로 모든 클래스는 상속가능
-. Form등의 User Interface를 갖는 상속은 Visual Inheritance라고 한다.
ㅇ. 구조적인 예외 처리
-. Try
예외처리 구문
Catch
예외발생시 처리 구문
Finally
Try문장 빠져나가기 전에 반드시 실행 (Optinal)
End Try
-. 관리하기 쉽고 안정적임
ㅇ. 오버로딩 (Overloading)
-. 다형성지원
-. ex)
in VB6.0
Sub DisplayCjar(ByVal theChar As Cahr)
....
Sub DisplayInt(ByVal theInteger As Integer)
....
....
Sub DisplayInt(ByVal theInteger As Integer)
....
In VB.NET
Overloads Sub Display(ByVal theChar As Char)
....
Overloads Sub Display(ByVal theInteger As Integer)
....
....
Overloads Sub Display(ByVal theInteger As Integer)
....
ㅇ. 메서드 오버라이딩 (Overriding Method)
-. Inheritance와 관련
-. Base Class에서 새로운 Child Class를 파생시킬때 기존의 Method를 새롭게 정의함
-. Base Class에서 Overridable로 명시된 것만 재정의 가능함
-. ex)
Class test1
Overridable Function testFunc(ByVal X as integer)
testFunction = X + 2
End function
End Class
Class test2
Inherits test1
Overridable Function testFunc(ByVal X as integer)
testFunction = X * 2
End function
End Class
Overridable Function testFunc(ByVal X as integer)
testFunction = X + 2
End function
End Class
Class test2
Inherits test1
Overridable Function testFunc(ByVal X as integer)
testFunction = X * 2
End function
End Class
ㅇ. 생성자와 소멸자 (Constructor, Destructor)
-. 생성자 : 새로운 개체의 초기화를 제어하기 위한 프로시져
소멸자 : 클래스가 범위를 벗어나거나 Nothing으로 설정되면 시스템의 자원을 해제하기 위한 Method
-. 클래스 사용자는 자원의 해제에 대한 부분을 신경쓰지 않고 사용할수 있으므로 편의성이 증대
-. 클래서 설계자는 반드시 신경써야 하는 부분
-. ex)
Class Test1
Private itest as Integer
Sub New(iVal as integer)
MyBase.New
itest = iVal
End Sub
Sub Destruct()
'자원해제 코드
End Sub
....
End Class
Private itest as Integer
Sub New(iVal as integer)
MyBase.New
itest = iVal
End Sub
Sub Destruct()
'자원해제 코드
End Sub
....
End Class
ㅇ. 공유 멤버 (Shared Member)
-. 클래스의 모든 인스턴스에 의해 공유되는 속성이나 프로시져
-. ex)
Class Test
Public Shared Load As Integer
Private strDesc As String
Property descript() As String
Get
descript = strDesc
End Get
Set(ByVal Value As String)
strDesc = Value
End Set
End Property
End Class
Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Click
Dim x As Test = New Test
Dim y As Test = New Test
x.descript = "Idle"
x.Load = 80
Console.WriteLine("X.Descript = " & x.descript)
Console.WriteLine("X.Load = " & x.Load)
y.descript = "Active"
y.Load = 540
Console.WriteLine("Y.Descript = " & y.descript)
Console.WriteLine("Y.Load = " & y.Load)
Console.WriteLine("Then X.Descript = " & x.descript)
Console.WriteLine("Then X.Load = " & x.Load)
Console.WriteLine("Then Y.Descript = " & y.descript)
Console.WriteLine("Then Y.Load = " & y.Load)
End Sub
Public Shared Load As Integer
Private strDesc As String
Property descript() As String
Get
descript = strDesc
End Get
Set(ByVal Value As String)
strDesc = Value
End Set
End Property
End Class
Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Click
Dim x As Test = New Test
Dim y As Test = New Test
x.descript = "Idle"
x.Load = 80
Console.WriteLine("X.Descript = " & x.descript)
Console.WriteLine("X.Load = " & x.Load)
y.descript = "Active"
y.Load = 540
Console.WriteLine("Y.Descript = " & y.descript)
Console.WriteLine("Y.Load = " & y.Load)
Console.WriteLine("Then X.Descript = " & x.descript)
Console.WriteLine("Then X.Load = " & x.Load)
Console.WriteLine("Then Y.Descript = " & y.descript)
Console.WriteLine("Then Y.Load = " & y.Load)
End Sub
실행결과 --->
X.Descript = Idle
X.Load = 80
Y.Descript = Active
Y.Load = 540
Then X.Descript = Idle
Then X.Load = 540
Then Y.Descript = Active
Then Y.Load = 540
X.Load = 80
Y.Descript = Active
Y.Load = 540
Then X.Descript = Idle
Then X.Load = 540
Then Y.Descript = Active
Then Y.Load = 540
-. 상기 결과와 같이 하나의 메모리 공간을 사용하기 때문에 Load에 대한 값이 변하게 된다.
ㅇ. 자유 스레드 (Free Threading)
-. 다중 작업을 독립적ㅇ로 실행할 수 있는 응용프로그램 작성
-. 새로운 스레드 생성시..
: System.Threading.Thread 유형의 변수 선언
: AddressOf 연산자를 사용한 생성자 명시
Dim tmpThread As New System.Threading.thread(AddressOf MySub)