728x90
728x90
다형성 - virtual, override - 객체 지향의 핵심 - 함수의 오버라이딩(재정의) - 반복문으로 객체 관리 - virtual과 override 키워드 사용 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _083_override { class Super { protected int num; public virtual void Print() { Console.WriteLine("num : {0}", num); } } class AA : Super { public int a; public override void Prin..
클래스 상속(IS-A 관계) - 부모 클래스 : base, parent, 상위, super - 자식 클래스 : derived, child, 파생, sub - 클래스의 재사용 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _081_01_classInheritance { class Super { protected int a; //private 불가능, public 가능 public void Print() { Console.WriteLine("Super Print()"); } } class Sub : Super { int b; pub..
this 키워드 - 객체 자신을 참조하는 키워드 - 사용처 1) 함수의 파라미터 이름과 멤버 변수 이름이 동일 2) 클래스 내부에서 멤버변수를 접근 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _079_this { class AA { int a; //this가 가리키는 객체, private 속성 public AA(int a) { this.a = a; } public void Print() { int a = 100; this.a = 1000; Console.WriteLine("a : {0}", a); Console.WriteLi..
클래스 개념 - 클래스는 사용자가 직접 만든 틀 - 변수(필드)와 함수(메소드)를 하나의 단위로 결합 - 상속, 다형성, 파생 클래스 등 클래스의 특수화 메커니즘을 가짐 접근 한정자 - 클래스의 멤버에 액세스(접근)할 수 있는 수준 public 액세스가 제한되지 않음 protected 이 클래스 또는 이 클래스에서 파생된 클래스로만 액세스가 제한됨 internal 현재 어셈블리(.exe, .dll 등)로만 액세스가 제한됨 protected internal 포함하는 클래스, 포함하는 클래스에서 파생된 클래스 또는 동일한 어셈블리 내의 클래스로만 액세스가 제한됨 private 이 클래스로만 액세스가 제한됨 private protected 포함하는 클래스 또는 동일한 어셈블리 내의 포함하는 유형으로부터 파생된..
메서드 오버로딩 - 메서드 이름이 중복 - 파라미터의 형식 다르게 - 파라미터의 수 다르게 static int Add(int a, int b) static int Add(int a, int b, int c) static int Add(float a, float b) using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _065_Func_Overloading { class Program { static int Add(int a, int b) { return a + b; } static int Add(int a, int b, int c) ..
Call by Value Call by Reference - 값에 의한 호출 - 함수에서 값에 영향을 주지 않는다 - 일반 함수 - void swap(int a, int b) - 주소에 의한 호출 - 함수에서 값에 영향을 준다 - ref 키워드를 가지는 함수 - void swap(ref int a, ref int b) using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _062_FuncSwap { class Program { static public void ValueSwap(int a, int b) { int temp = a; a ..