목록프로그래밍언어/C# (24)
성장일기
○오버로딩과 오버라이딩 오버로딩 - void teest() void test(int A) 이름은 같고 인자로 다름을 구분 오버라이딩 - void test(int A) void test(int A) 부모와 자식클래스 둘다 동일하게 º메서드=메소드=함수=프로시저 등 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _20200602_006 { class Mammal { public virtual void Move() { Console.WriteLine("이동한다"); } } class Lion : Mammal { public overr..
○object º부모클래스를 명시하지 않는다면 기본적으로 object타입에서 상속받는다고 가정하고 자동코드생성 º모든 클래스는 기본적으로 object를 상속받는다 ºobject 타입은 모든 타입을 포함하고있다 ºToString-문자열로 반환 5+'0'을 하면 53이 나온다-> 아스키코드 0은 48이기 때문, 따라서 이것을 문자형으로 바꿔주면 5가 나온다 ºGetType ºEquals 값을 비교해 불린형으로 반환한다 string 클래스는 object안에 있는 equals를 쓰지않음(오버라이딩) ->객체 자체를 비교하지 않고 텍스트비교 ºGetHashCode 1:1대응하는것을 hash라고부름 객체의 고유번호를 알아낼때 사용 고유번호를 비교해서 같으면 같은객체, 다르면 다른객체로 인식 hash는 2^32를 넘..
○생성자 객체 생성하려는 시도를 할 떄, 스태틱생성자가 가장 먼저 호출됨 Main안에서 아무도 스태틱생성자를 호출하지 않았지만 Person을 생성하려하니 스태틱생성자가 먼저 호출 ->이때 heap에 Person객체에 디폴트생성자 호출(person1에 대입은 안한 상태) 스태틱이 더이상 뜨지 않음 => 디버깅모드를 쓰면 프로세스 이해가 쉬움 ○정보은닉 정보은닉은 캡슐화가 잘 되면 함께 지켜진다 즉 정보은닉은 캡슐화의 수단이다. get과 set을 씀 public void SetSpeed를 if문으로 제약을 건다 ○프로퍼티 ○상속 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Th..
○종료자-디폴트 생성자에 ~(틸드) 붙임 CLR에서는 메모리 문제를 해결하기 위해 내부적으로 가비지 수집기(Garbage Collector:GC)를 도입 객체가 더는 사용되고 있지 않다면 데이터 해제 불확실한 시점에 메모리 정리 닷넷이 관리하지 않는 시스템자원을 얻은 경우에만 종료자를 정의해야함(성능 면에 부하) 메서드의 특별한유형 ○정적멤버,인스턴스멤버 static정적dynamic동적 객체는 런타임시점에 만들어짐->new를 통해 만들어진 객체는 메모리에만 존재=실행 됐을때만 존재 static을 쓰면 컴파일 시점에 만들어짐->파일 내에 존재= 항상 존재 static메소드 안에는 static만 쓸 수 있음 ○정적생산자 ○네임스페이스 ○접근 제한자(지정자)
메모장에 코드를 쓰고 확장자를 cs로 바꿔주면 c#파일로 바뀜 비주얼 스튜디오는 IDE (통합개발환경 IDE: Integrated Development Environment) 원래 도스창에서 명령어를 넣어 컴파일을 하고 실행 해줘야하지만 vs가 지원함 ○명령행 컴파일러 ○배열 ar은 int배열 10개를 참조한다 int ar[10]; - 기본형 new int[2,3] - 2차원배열 배열의 중첩은 잘 쓰지않음 ○클래스 기존프로그램이 현실반영이 어려워서 현실반영을 위한 객체지향프로그램이 나옴 객체의 특징을 쭉 적어보는 것,서술(사양서)-class = 틀 붕어빵 틀=클래스, 붕어빵 =객체 클래스를 정의해놓으면 객체를 대량생산해낼 수 있음 class 이름 { } 정보는 행위정보와 상태정보를 만든다. 행위정보는 메..
참고)string,배열, 클래스, object 모두 참조형식 값을 스택에 저장-값형식, 힙에 저장-참조형식 초기화되지 않은 모든 참조형 변수는 null 값을 가진다 ○기본형-객체파일, 객체형 기계어->어셈블리어(부터는 인간을 위해 만든 언어)->C(객체지향)->,,->,, 저급어-------------------------------------------------->고급어 고급어는 인간의 생각을 기계어로 번역한다. 소프트웨어 하나로 어느 플랫폼에서나 실행하는 것이 목표 C#은 2000년 6월 마이크로소프트가 발표한 플랫폼 독립적인 실행환경 이진 호환성을 확보한 플랫폼은 1995발표된 자바이다 닷넷은 최신버전보다 안정된 버전을 쓰는 것이 좋다 닷넷 컴파일러는 IL(Intermediate Language)..