본문 바로가기

반응형
   

전체 글

(1624)
참조형 형변환 참조형 형변환 - 상속 관계에 있는 부모, 자식 클래스간의 형변환(상속관계에 있는것만 참조형 형변환이 가능하다.) - 부모형 -> 자식형 : 다운캐스팅(Down Casting) - 자식형 -> 부모형 : 업캐스팅(Up Casting) 업 캐스팅 - 100% 가능 - 암시적, 명시적 가능 - 캐스팅이 발생해도 객체 자체는 변화 없음 다운 캐스팅 - 상황에 따라 가능 - 반드시 명시적으로 구현 - 예외 발생 가능 -> InvalidCastException 다운캐스팅 100% 불가능 Parent p2; Child c2; p2 = new Parent(); c1 = (Child)p2; 암시적 형변화 : 그냥 선언하지 않아도 형변화가 가능하다 명시적 형변화 : 반드시 명시하여 형변화 해야한다. 하지만 반드시 암시적..
최종클래스(Sealed), 인터페이스(Interface) 최종클래스 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Test { class Sealed { static void Main(string[] args) { NowTime t1 = new NowTime(); } } //봉인(최종) 클래스 // - 성능 이익 // - 닷넷 제공 클래스의 최하위 클래스들은 봉인 클래스 sealed class Time { } class NowTime : Time { } } 인터페이스(Interface) 추상클래스에서 확장된 개념 - 클래스의 표준 사항을 결정하는 클래스 - 추상클래스와 유사 - 구성 요소 : 메서드, 프로퍼티, 인덱서, 이벤트 등..표준..
오버라이딩 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Test { class Overriding03 { static void Main(string[] args) { Time t1 = new Time(5, 20); Console.WriteLine(t1.GetTime()); DateTime t2 = DateTime.Now; //원형 Console.WriteLine(t2.ToString()) 내부적으로 ToString을 강제 호출한다. Console.WriteLine(t2); Console.WriteLine(t1); //System.Object 클래스의 메서드 : ToString() // ->..
추상클래스(Abstract Class) 추상클래스 - 일반 클래스와 상속 관계를 맺는 클래스 - 상속 받는 객체들을 표준화하는 역할 - 상속시 일반 클래스보다 상위에 위치한다. - 객체생성을 직접 하지 못한다. - 부분 구현이 가능하다.(데이터를 가질수 있고, 메서드도 구현할수 있다. 추상메서드(Abstract Method) - 추상클래스 내에서 선언되는 메서드 - 파생 클래스(자식클래스)에서 반드시 구현해야 함 - 메서드 본문을 가질수 없다. 추상클래스는 실체화가아니다. 부모역활만 한다. 1. 멤버를 구성할수 있고 abstract class Printer { public string name; public string owner; 2. 행동을 만드는 부분을 규약 할수 있다. public abstract void Print(); using S..
클래스 상속, 오버라이딩 클래스 상속(Inheritance) - 부모 객체의 멤버를 자식 객체가 물려 받는 것 - 코드의 재사용 - 코드의 확장 - 상속(Inheritance) - 파생(Derive) - 확장(Extend) - 슈퍼(super)클래스 - 서브(sub)클래스 - 부모클래스 - 자식 클래스 - 기본 클래스 - 파생 클래스 코드의 재사용 하기위해서 상속 개념 이용 상속시.. - public 은 상속이 가능하고, 자식클래스에서도 public이 된다. - private은 상속은 가능한데, 자식클래스조차도 접근 불가능!! - protected은 상속이 가능하고, 자식클래스에서만 접근 가능 - public(공개) > protected > private(비공개) 상속관계에서는 public 처럼 작동하는것이 protected u..
Constructor(생성자) 오버로딩 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Test { class Constructor { public static void Main(string[] args) { //Constructor(생성자 = 모든방을 초기화 해준다.) //-객체를 생성할때 자동으로 호출되는 메서드 //-역할 : 객체의 멤버를 초기화 //-특징 : 메서드 의 이름이 클래스의 이름과 동일 //-오버로딩이 가능하다. //-우리가 생성자를 선언하지 않으면 기본 생성자라는 게 자동으로 생성(무조건) // 1. 접근 지정자 public // 2. 클래스 이름과 동일하게.. // 3. 반환값X, 인자값X // 4...
public, private, static, 인스턴스, 참조변수 소멸 접근 지정자(제한자) - Acces Modifier - 클래스 멤버의 보안 제어(캡슐화, 내부 은닉화) - public, private, protected, internal, protected internal public - 클래스의 멤버를 100% 공개 - 클래스 내부, 외부(다른 클래스), 파생클래스, 외부 파일 등.. - 언제든지, 어디서나 접근 가능한 멤버를 만들고자 할때.... - 메서드중 공개가 필요한건 public 그외의 메소드는 private private - public의 정반대 - 클래스의 멤버를 100% 비공개 - 클래스 내부외엔 절대 접근 불가능 - public 에선 사용할 필요가 없고 선언한 클래스 내에서만 사용하기 위해서 만든것이다. - 무조건 멤버 변수는 private으로 선언..
객체 지향 프로그래밍 OOP, 클래스 라이브러리, 접근 지정자 객체 지향 프로그래밍(OOP) -기능이나 객체 위주로 프로그래밍 -이벤트 위주 프로그래밍 -절차 지향 프로그래밍(코드위주) * 모든객체는 데이타를 갖는다. * 객체를 통해서 어떠한 행동을 하는것 => 프로시져 => 메소드 위2가지를 엮어서 관리를 하기 위해서 구현해 놓은것을 Object라고 한다. 객체(Object) -데이터 + 프로시저 -독자성(Identity) : 객체는 다른 객체와 구분(객체 와 객체를 구분을 할수 있는것은 그 객체가 갖는 데이타로 구분가능) 객체는 구별하기 위해 유일한 것이 되야 한다. -상태(State) : 객체의 상태(프로퍼티) -행동(Behavior) : 객체의 행동(메서드) 캡슐화(Encapsulation) 1. 케이스로 감싸는 작업 2. 최소한의 외부에 노출되야 하는 부분..

반응형