17. 프로퍼티(Property)의 이해
·
💻 Programming Language/C#
namespace PropertyEx { //프로퍼티 class DemoClass { private int demoField; public int getDemoField() { return demoField; } public void setDemoField(int demoField) { this.demoField = demoField; } } class Program { static void Main(string[] args) { DemoClass demoClass = new DemoClass(); demoClass.setDemoField(100); Console.WriteLine(demoClass.getDemoField()); } } } 보통 Java나 객체지향언어 에서 위와 같은 방식으로 getter..
16. 추상클래스(Abstract Class) 이해
·
💻 Programming Language/C#
namespace AbstractClassEx { abstract class MyAbstractClass { protected void protectedMethod() { Console.WriteLine("추상클래스의 protected method"); } public void publicMethod() { Console.WriteLine("추상클래스의 public method"); } public abstract void abstractMethod(); // 인터페이스에서는 추상메소드가 기본적으로 public이기 때문에 반환타입만 사용했지만 // 추상클래스에서는 추상메소드에 제한자 및 abstract 키워드를 사용해줘야 한다. } class Child : MyAbstractClass { public o..
15. 인터페이스(Interface) 이해
·
💻 Programming Language/C#
namespace InterfaceEx { interface IMyInterfaceA { void output(); } interface IMyInterfaceB { void output(); } class MyClass : IMyInterfaceA, IMyInterfaceB // 다중 상속 { static void Main(string[] args) { MyClass myClass = new MyClass(); IMyInterfaceA ia = new MyClass(); ia.output(); IMyInterfaceB ib = new MyClass(); ib.output(); } void IMyInterfaceA.output() // 다중상속을 통해 가져온 클래스들의 메소드명이 같은경우에는 `클래스.메..
14. 확장 메소드
·
💻 Programming Language/C#
확장 메소드 : 기존 클래스의 기능을 확장하는 기법, 상속과 구별하여 생각하면 이해하기가 쉽다. 상속과 다르게 "기존클래스" 에 확장을 해줌으로써 본래 있던 기능처럼 사용할 수 있다. 주의)Java와 혼동하지 말것!!! Java는 extends라는 키워드를 이용해 상속을 받는데 Java에서는 상속에 확장의 개념이 포함된다. 하지만 C#에서는 상속과 확장 개념을 분리시킨다. ####확장 메소드 선언 형식 - static 키워드가 붙어야한다. public static class 클래스명 { public static 반환형식 메소드명( this 대상형식(클래스, 타입) 식별자, 매개변수) { } } 확장메소드 사용 예제 코드1 using System.Collections; namespace ExtansionE..
13. 튜플 리턴 타입을 이용한 메소드 사용하기
·
💻 Programming Language/C#
using System; namespace TupleEx2 { class Program { static void Main(string[] args) { // 튜플 리턴타입을 이용한 메소드 선언 (int count, int sum, double avg) getScore (List data) //튜플 리턴타입을 명시. { int count = 0, sum =0; double avg = 0; foreach (var item in data) { count++; sum += item; } avg = sum / count; return (count, sum, avg); } var data = new List {10, 11, 22, 33, 44}; var result = getScore (data); Console...