Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 인터페이스 예제
- this 키워드
- 자동구현프로퍼티
- base()
- 일반화 클래스
- 무명형식
- c#
- 메소드숨기기
- 가변배열
- 컬렉션 초기화
- 이것이C#이다
- as
- 분할 클래스
- 클래스
- 배열초기화
- 형식변환
- 배열
- 접근 한정자
- 클래스 연습문제
- 튜플
- 중첩클래스
- 인터페이스의 프로퍼티
- 추상 프로퍼티
- is
- 인터페이스 상속
- 인덱서
- 오버라이딩
- System.Array
- 프로퍼티와 생성자
- 프로퍼티
Archives
- Today
- Total
제로의영역
8.2 인터페이스는 약속이다 본문
* 본 블로그 글은 머리가 아~~~주 나쁜 왕X100초보가 프로그래밍을 공부하면서 정리를 위해 작성하는 글입니다. 잘못 정리되거나 제가 잘못 이해한 글은 이해 및 조언 부탁드립니다.
* 공부는 '이것이 C#이다' 책을 보고 하고 있습니다. 참고로 저같은 왕초보가 보기 어렵게 써져 있어서 별도의 정리 문서를 만들게 되었습니다.
인터페이스 예제입니다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace ex8._1
{
interface ILogger // 자신으로부터 파생될 클래스가 반드시 WriteLog()메소드를 구현하도록 강제함
{
void WriteLog(string message);
}
class ConsoleLogger : ILogger //ILogger를 상속하며, WriteLog() 메소드 구현
{
public void WriteLog(string message)
{
Console.WriteLine("{0}{1}", DateTime.Now.ToLocalTime(), message);
}
}
class FileLogger : ILogger //ILogger를 상속(강제 수행함)하며, WriteLog() 메소드 구현.
{
private StreamWriter writer;
public FileLogger(string path)
{
writer = File.CreateText(path);
writer.AutoFlush = true;
}
public void WriteLog(string message)
{
writer.WriteLine("{0} {1}", DateTime.Now.ToShortTimeString(), message);
}
}
class ClimateMonitor
{
private ILogger logger;
public ClimateMonitor(ILogger logger)
{
this.logger = logger;
}
public void start() //monitor 변수를 받아 메소드 실행
{
while (true) //입력 값이 참인 동안 아래 코드 실행
{
Console.Write("온도를 입력해주세요.: "); //프로그램 실행 시 텍스트 표시
string temperature = Console.ReadLine();
//입력 값을 문자열을 변수 temperature로 선언
if (temperature == "")
break; //temperature값이 입력되지 않으면 메소드를 종료함.
logger.WriteLog("현재 온도: " + temperature);
//logger를 변수로한 WriteLog를 ("현재 온도: " + temperature)로 매개변수로 삼아 실행
}
}
}
class MainProgram
{
static void Main(string[] args)
{
ClimateMonitor monitor = new ClimateMonitor(new FileLogger("MyLog.txt"));
//monitor 객체는 애플리케이션이 시작된 디렉토리에 MyLog.txt를 만들고 여기에 로그를 남김.
monitor.start(); //start 메소드 실행. start()메소드로 이동
}
}
}
출력결과
1) 콘솔
온도를 입력해주세요.: 15
온도를 입력해주세요.: 27
온도를 입력해주세요.: 32
온도를 입력해주세요.:
2) MyLog파일: 폴더의 bin > Debug 폴더 안에 MyLog파일이 생성되며 그곳에 기록이 남습니다.
오후 5:18 현재 온도: 15
오후 5:23 현재 온도: 27
오후 5:23 현재 온도: 32
이번 예제는 저한테 어렵네요. 안배운것도 나오고... ㅜㅜ
'C#' 카테고리의 다른 글
8.4 여러 개의 인터페이스, 한꺼번에 상속하기 (0) | 2019.06.26 |
---|---|
8.3 인터페이스를 상속하는 인터페이스 (0) | 2019.06.25 |
7.17 튜플 (0) | 2019.06.18 |
7.16 구조체 (0) | 2019.06.16 |
7.15 확장 메소드 (0) | 2019.06.14 |