목록C# (132)
S_pot
class Program { static void Main(string[] args) { Console.Write("숫자를 입력하세요 : "); // 실행창에서 커서가 옆으로 위치하기 위해 Write를 사용(화면의 편의성을 고려) string stringNumber = Console.ReadLine(); // Console.ReadLine: 데이터를 입력받아준다. int Number; Number = int.Parse(stringNumber); // int.Parse(): ()안의 문자를 분석해서 int형으로 바꾸어준다. Console.WriteLine(Number + 100); } }
using System; namespace _210525_011 { class Car { } class HyunDai : Car { } class Sonata : HyunDai { } class KIA : Car { } class K5 : KIA { } class Program { static void Main(string[] args) { Car aCar = new K5(); Sonata aSonata; aSonata = aCar as Sonata; Console.WriteLine("aSonata는 null값을 가지는 가? : " + (aSonata == null)); KIA aKIA = aCar as KIA; Console.WriteLine("aKIA는 null값을 가지는 가? : " + (aKIA ..
using System; namespace _210525_011 { class Car { } class HyunDai : Car { } class Sonata : HyunDai { } class KIA : Car { } class K5 : KIA { } class Program { static void Main(string[] args) { Car aCar = new Sonata(); bool aBool; aBool = aCar is Sonata; // is연산자: aCar가 Sonata를 가지고 있는가 Console.WriteLine(aBool); // True를 반환 Console.WriteLine(aCar is Sonata); // True를 반환 Console.WriteLine(aCar is K5..
override: 상속관계의 클래스 사이에서 부모클래스의 메소드를 자식클래스가 부모의 메소드를 받아서 다른 형태로 바꾸어 사용 using System; namespace _210525_010 { class Instrument { public virtual void Play() // virtual: 부모클래스에서 자식클래스의 함수를 사용할 수 있게한다. { Console.WriteLine("연주하다."); } } class Piano : Instrument { public override void Play() { Console.WriteLine("따라란딴딴"); } } class Guitar : Instrument { public override void Play() { Console.WriteLine("..
using System; // 박싱, 언박싱 namespace _210525_008 { class MainApp { static void Main(string[] args) { int a = 123; object b = (object)a; // a에 담긴 값을 박싱해서 힙에 저장 int c = (int)b; // b에 담긴 값을 언박싱해서 스택에 저장 Console.WriteLine(a); Console.WriteLine(b); Console.WriteLine(c); double x = 3.1414213; object y = x; // x에 담긴 값을 박싱해서 힙에 저장 double z = (double)y; // y에 담긴 값을 언박싱해서 스택에 저장 Console.WriteLine(x); Consol..
using System; namespace _210525_004 { class A { public int ANum; public A(int Num) { ANum = Num; } public A(int Num1, int Num2) { ANum = Num1 + Num2; } } class B : A { int ANum; public B() : base(100,200) // base(): 부모의 생성자를 호출 { int ANum = 100; // 메소드의 지역변수 this.ANum = 100; // B클래스(자식)의 인스턴스 변수 base.ANum = 300; // A클래스(부모)의 인스턴스 변수 Console.WriteLine("B 디폴트 생성자"); } } class Program { static void..
using System; // 상속으로 코드 활용 // class Parents { public int pNum; public Parents() { Console.WriteLine("Parents 디폴트 생성자 호출"); } ~Parents() { Console.WriteLine("Parents 소멸자 호출"); } } // Parent, Base(기반), super // Child, Derived(파생), sub class Child : Parents // Child는 Parents를 상속 받았다. { public int cNum; public Child() { Console.WriteLine("Child 디폴트 생성자 호출"); } ~Child() // Parents class보다 Child clas..

// this()생성자 사용전 public Smart(string Name) { this.Name = Name; this.Address = "미기입"; } public Smart(string Name, string Address) { this.Name = Name; this.Address = Address; } public Smart() { this.Name = "무명"; this.Address = "미기입"; } } class Program { static void Main(string[] args) { Smart aSmart = new Smart("홍길동", "부산"); } } // this() 생성자 적용 using System; // this() 생성자: 생성자에서 다른 생성자를 호출 // 메서드..

using System; // 얕은복사, 깊은복사 예제 namespace _210525_001 { class MyClass { public int MyField1; // 인스턴스 변수 public int MyField2; // 인스턴스 변수 public MyClass DeepCopy() // 반환값: MyClass 래퍼런스 { MyClass newCopy = new MyClass(); // 새로운 MyClass를 생성 newCopy.MyField1 = this.MyField1; // this는 source.MyField1 newCopy.MyField2 = this.MyField2; // this는 source.MyField2 return newCopy; } ~MyClass() { Console.Write..

using System; namespace _210524_002 { class Global { // static 변수/ 정적 변수 public static int Count = 0; } class ClassA { public ClassA() { Global.Count++; } } class ClassB { public ClassB() { Global.Count++; } } class MainApp { static int INum; // 정적필드 int TestNum; // 동적필드 static void StaticMethod() { } void DynamicMethod() { } static void Main() // 정적 메소드 // 정적 메소드는 // 정적 필드 혹은 // 정적 메소드에만 접근가능 {..