본문 바로가기
반응형

전공/C# 프로그래밍28

12강. 파일 다루기 (2) 임의 접근 통한 파일 입출력 임의 접근을 통한 파일 입출력 Stream 클래스(파생 클래스 FileStream)의 Position 프로퍼티 현재 스트림의 읽는 위치 또는 쓰는 위치를 나타냄 WriteByte() 또는 ReadByte() 메소드를 호출하면 자동으로 Position이 1씩 증가 Write() 또는 Read()는 쓰거나 읽은 바이트 수만큼 Position이 증가 임의 접근(Random access) 방식 Seek() 메소드를 호출하거나 Position 프로퍼티에 원하는 값 대입 지정한 위치로 점프해 읽기/쓰기를 위한 준비를 할 수 있음 using System; using System.IO; namespace SeqNRand { class MainApp { static void Main(stri.. 2023. 6. 3.
12강. 파일 다루기 (1) 파일 입출력 파일과 디렉터리 정보 관리 파일은 컴퓨터 저장 매체에 기록되는 데이터의 묶음 디렉터리는 파일이 위치하는 주소이고 파일을 담는 폴더라고 불림 .NET은 System.IO 네임스페이스 안에 다음의 클래스를 제공 주요 메소드와 프로퍼티 File, FileInfo, Directory, DirectoryInfo 클래스가 제공하는 메소드와 프로퍼티 파일/디렉터리의 생성, 복사, 삭제, 이동, 정보 조회 등의 기능을 수행 디렉터리 / 파일 정보 조회 예제 코드 //디렉토리/파일 정보 조회하기 //매개 변수를 입력하지 않으면 현재 디렉토리 조회 //매개변수 입력하면, 입력한 디렉토리 조회 using System; using System.Linq; using System.IO; namespace Dir { .. 2023. 6. 3.
11강. 인터페이스와 추상 클래스 (3) 인터페이스의 프로퍼티 인터페이스의 프로퍼티 인터페이스는 메소드 뿐 아니라 프로퍼티와 인덱서도 가질 수 있음 파생 클래스에서 프로퍼티와 인덱서를 반드시 구현해야 함 인터페이스의 프로퍼티 선언은 클래스의 자동구현 프로퍼티 선언과 동일 using System; namespace PropertiesInInterface { interface INamedValue { string Name{get;set;} string Value{get;set;} } class NamedValue : INamedValue {//INamedValue 인터페이스 프로퍼티 구현위해 자동구현 프로퍼티 이용 가능 public string Name{get;set;} public string Value{get;set;} } class MainA.. 2023. 5. 27.
11강. 인터페이스와 추상 클래스 (2) 다중 상속 여러 개의 인터페이스, 한꺼번에 상속하기 클래스는 "죽음의 다이아몬드" 문제 때문에, 여러 클래스 한꺼번에 상속할 수 없음 예제그림에서, 최초 클래스(Ridable)의 두 파생클래스(Car, Plane)가 존재하고, 이 두 파생클래스를 다시 하나의 클래스(MyVehicle)가 상속 했을 때, MyVehicle 클래스는 어느 Ride() 메소드를 물려 받을까? 인터페이스는 내용이 아닌 외형을 상속 “죽음의 다이아몬드” 문제 발생하지 않음 인터페이스의 다중 상속 지원 단순한 외형만 상속함으로 내부 구현은 상속자에게 맡김 클래스와 달리 인터페이스는 다중 상속이 허용 인터페이스의 메서드를 자식 클래스에서 구현할 때는 반드시 public 접근 제한자 명시 예를 들어, Notebook 클래스에서는 Com.. 2023. 5. 27.
11강. 인터페이스와 추상 클래스 (1) 인터페이스 (Interface) 인터페이스(Interface) 선언 인터페이스는 interface 키워드를 이용해서 선언 메소드, 이벤트, 인덱서, 프로퍼티만을 가질 수 있음 메소드, 이벤트, 인덱서, 프로퍼티의 구현부는 없음 접근 제한 한정자(e.g. private) 사용 불가 인터페이스는 인스턴스를 만들 수 없음 인터페이스를 상속받는 클래스의 인스턴스를 만드는 것은 가능 더보기 인터페이스는 청사진 클래스 (a.k.a Concrete 클래스)는 객체의 청사진 인터페이스는 클래스의 청사진 클래스가 해야하는 행동을 결정 : 즉, 클래스가 어떤 메소드를 가질지 결정 [특징] 가능한 멤버 : 메소드, 이벤트, 인덱서, 프로퍼티 대개 interface의 I로 시작하는 이름으로 명 구현부 없음 모두 public으.. 2023. 5. 23.
10강. 인덱서 (Indexer) & foreach가 가능한 객체 만들기 인덱서 (Indexer) 인덱서 인덱스(Index)를 이용해서 객체 내의 데이터에 접근하게 해주는 프로퍼티 객체를 마치 배열처럼 사용할 수 있게 지원 프로퍼티처럼 식별자를 따로 가지지 않음 인덱스를 통해 객체 내의 데이터에 접근 using System; using System.Collections; namespace Indexer { class MyList { private int[] array; public MyList() { array = new int[3]; } public int this[int index] //인덱서 { get { return array[index]; } set { if (index >= array.Length) { Array.Resize(ref array, index + 1);.. 2023. 4. 20.
반응형