목록프로그래밍언어/C# (24)
성장일기
using System; public class Mathematics { delegate int CalcDelegate(int x, int y); static int Add(int x, int y) { return x + y; } static int Sub(int x, int y) { return x - y; } static int Mul(int x, int y) { return x * y; } static int Div(int x, int y) { return x / y; } CalcDelegate[] methods; public Mathematics() // 생성자 { methods = new CalcDelegate[] { Mathematics.Add, Mathematics.Sub, Mathemati..
(Add와 Div의 변수이름이 같아도 되지만 임의로 3,4로 설정했음) 메소드를 가리키는 타입 : delegate 델리게이트를 쓰면 반복문도 만들 수 있다 using System; public class Mathmatics { delegate int CalcDelegate(int x, int y); static int Add(int x, int y) { return x + y; } static int Subtract(int x, int y) { return x - y; } static int Multiply(int x, int y) { return x * y; } static int Divide(int x, int y) { return x / y; } CalcDelegate[] methods; publi..
●추상화 ●캡슐화 마치 블랙박스,자판기처럼 밖에서 안을 들여다보지 못하게 하는 것 필요한 것만 선택해서 보여줌 ●모듈화 모듈화시키면 다른 프로그램에서 쓸 수 있음- 생산성 향상 ●계층성 층마다 구분하여 단계적으로 시행할 수 있도록 함 따로 개발할 수 있음 객체가 먼저일까 클래스가 먼저일까? -하드웨어 발전은 매우 빠른 반면 소프트웨어의 발전은 상대적으로 늦다 C를 발전시킨것이 OOP(Object Oriented Program)이다 객체를 문서화 한 것이 클래스이다. Class Car { 속성 ->변수 등으로 표현 행위 ->메소드로 표현 } 즉, 변수와 메소드를 모아놓은 것이 클래스 따라서 객체를 만드는 것이 가장 중요하다 ●상속 단일상속과 다중상속 C#은 단일상속 메인이 속한 클래스는 전체 프로젝트 이름..
● int, double, float int형, double형, float형 연습 메소드의 반환값을 꼭 처리하거나 활용해야하는 의무는 없음 결과값을 저장할 수도, 저장하지 않고 활용할 수도 있다 ●배열 for 문을 활용한 배열 자리 찾기 { } 을 써도 가능 for문을 쓰지 않고 IndexOf로 한꺼번에 출력 가능하다 for문을 쓸지 말지는 선택임 Array 1이 만들어짐 -> 대입하려하니 바로 대입이 안됨(new로 만들어라, int형 100개/heap) =>[0] 부터 [99]까지 만들어짐 41// new라는 연산자가 heap의 주소를 바꿔줌 (Array1이 그 주소를 가리킴) ->(예를들어 주소가 7000이라면 Array1에 7000이 할당됨) 42// 똑같이 생긴 Array2가 만들어짐-> test..
º모든 연산자를 오버로딩할 수 있는것은 아니다 ○클래스 간의 형변환 환율 고려안한 금전계산 오류 생길 수 있다 ºimplicit(암시적, 명시적 형변환 둘 다 허용) explicit은 명시적만 implicit operate를 오버로드했으므로 함시적 형변환을 할 수 있고 명시적으로 캐스팅연산자를 쓰는 것도 허용 ºexplicit ○C#의 클래스 확장 1.타입유형 확장 1.1 중첩클래스 public을 붙여야 외부에서 사용할 수 있다 internal-같은 파일 내부에 위치 1.2 추상클래스 ->abstarct 예약어가 지정되고 구현 코드가 없는 메서드 부모클래스의 인스턴스를 생성하지 못하게 하면서 특정 메서드에 대해 자식들이 반드시 재정의하도록 하고싶을 떄 º특징 new를 사용해 인스턴스로 만들 수 없다 추상..
○오버로드-메서드 오버로드/연산자 오버로드 º메서드 시그니처 주체가 무엇인지를 판단, 메서드를 고유하게 규정할 수 있는 정보 º'재정의'라는 단어로 번역될 수 있다 오버라이드- 시그니처가 완전히 동일한 메서드를 재정의할때 사용 오버로드-시그니처 중에서 반환값은 무시하고 이름만 같은 메서드가 '매개변수의 수','개별 매개변수 타입'만 다르게 재정의 되는 경우 º메서드 오버로드 Console.WriteLine도 다양한 값을 받을 수 있게 정의된 메서드오버로드의 예 º연산자 오버로드(operator overload) int operator + (int N1,int N2) { return N1+N2; } using System; using System.Collections.Generic; using System..