성장일기
06/03 스마트팩토리 교육 - 오버로드 본문
○오버로드-메서드 오버로드/연산자 오버로드
º메서드 시그니처
주체가 무엇인지를 판단, 메서드를 고유하게 규정할 수 있는 정보
º'재정의'라는 단어로 번역될 수 있다
오버라이드- 시그니처가 완전히 동일한 메서드를 재정의할때 사용
오버로드-시그니처 중에서 반환값은 무시하고 이름만 같은 메서드가 '매개변수의 수','개별 매개변수 타입'만
다르게 재정의 되는 경우
º메서드 오버로드
Console.WriteLine도 다양한 값을 받을 수 있게 정의된 메서드오버로드의 예
º연산자 오버로드(operator overload)
int operator + (int N1,int N2)
{
return N1+N2;
}
<소스>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _20200603_008
{
class Market
{
public int iApple;
public int iOrange;
public static Market operator + (Market Obj1, Market Obj2)
{
Market Obj3 = new Market();
Console.WriteLine("operator + 호출됨");
return Obj3;
}
}
class Program
{
static void Main(string[] args)
{
Market 가게1 = new Market();
Market 가게2 = new Market();
가게1.iApple = 10;
가게1.iOrange = 10;
가게2.iApple = 100;
가게2.iOrange = 100;
Market 가게3 = new Market();
가게3.iApple = 가게2.iApple + 가게1.iApple;
가게3.iOrange = 가게2.iOrange + 가게1.iOrange;
Console.WriteLine("가게3.iApple : " + 가게3.iApple);
Console.WriteLine("가게3.iOrange : " + 가게3.iOrange);
가게3 = 가게1 + 가게2;
// ->여기서 호출됨, 만약 -를하면 호출안됨
// (-를 호출하려면 새로운 operate -를 만들면 된다)
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _20200603_008
{
class Market
{
public int iApple;
public int iOrange;
public static Market operator + (Market Obj1, Market Obj2)
{
Market Obj3 = new Market();
Console.WriteLine("operator + 호출됨");
return Obj3;
}
}
class Program
{
static void Main(string[] args)
{
Market 가게1 = new Market();
Market 가게2 = new Market();
가게1.iApple = 10;
가게1.iOrange = 10;
가게2.iApple = 100;
가게2.iOrange = 100;
Market 가게3 = new Market();
가게3.iApple = 가게2.iApple + 가게1.iApple;
가게3.iOrange = 가게2.iOrange + 가게1.iOrange;
Console.WriteLine("가게3.iApple : " + 가게3.iApple);
Console.WriteLine("가게3.iOrange : " + 가게3.iOrange);
가게3 = 가게1 + 가게2;
->여기서 호출됨, 만약 -를하면 호출안됨(-를 호출하려면 새로운 operate -를 만들면 된다)
}
}
}
-연산을 하고싶으면 새로운 operate를 만들어서 Main에 호출하면 된다(*,/도 마찬가지)
예) 가게3=가게1-가게2
º컴플렉스(복소수)
int operator +(int A , intB)
'프로그래밍언어 > C#' 카테고리의 다른 글
07/13 스마트팩토리 교육 - C# 복습 (0) | 2020.07.13 |
---|---|
06/04 스마트팩토리 교육- (0) | 2020.06.04 |
06/03 스마트팩토리 교육-오버라이딩 (0) | 2020.06.03 |
06/02 스마트팩토리 교육 - Object,Array,this,base (0) | 2020.06.02 |
06/01 스마트팩토리 교육 -생성자, 정보은닉, 프로퍼티,상속,is as 연산자 (0) | 2020.06.01 |