[C#] - 클래스 : class, 접근 한정자 : public protected private
○ 클래스 : class, 접근 한정자 : public protected private |
- 클래스 변수와 메소드를 그룹화한 것, 서로 공통된 개념을 묶어서 많이 사용 new(인스턴스객체 생성, 생성자 호출, 메모리에 공간 할당)를 통해 객체를 생성하여 사용함 클래스의 생성자는 반환형을 쓰지 않음, 매개변수의 다형성 가능 자신의 클래스명을 출력하려면, this.GetType().Name 을 사용한다(상속 때 클래스가 다르니까) 상속받은 상위 클래스명을 출력하려면, this.GetType().BaseType.Name 을 사용한다
class 앞에는 internal 이 접근 한정자로 등록되어 있다(생략되어 있음) -> internal 은 동일한 어셈블리 내에서 public과 같은 역할을 해 접근을 가능하게 해줌 형식 : [접근 한정자] class class_name { [접근 한정자] 변수, 메소드 // 멤버 변수, 멤버 메소드 } - 접근 한정자 : public, protected, private public : 클래스 내외부에서 모두 접근가능, 상속관계에도 마찬가지 protected : 클래스 안에서는 private 역할, 상속 관계에서는 접근 가능 private : 클래스 또는 구조체 안에서만 사용가능, 클래스 외부에서 사용불가 -> public을 생략하고 아무것도 쓰지 않을 시, private 형태이다! - static 키워드 사용 시, 객체를 사용하지 않고 맴버 변수를 사용한다 ex) class Class { public static int number = 14; } -> Class.number = 18; - this this는 객체 자신을 참조하는 키워드(ex : this.number = number)
namespace ConsoleApp1 { public class Date { // public 생략 시 자동적으로 private 형태가 됨 // 만일 public 생략(private)이거나, protected 시, 값 변경이 클래스 외부에서 // 불가하기 때문에 값 변경을 할 수 없다 public int Year; public int Month; public int Day; // 생성자를 통한 대입 // 생성자는 클래스명과 동일해야한다! public Date(){ } public Date(int a, int b, int c) { Year = a; Month = b; Day = c; } // 맴버 메소드를 통해 값 대입 public void setDate(int a, int b, int c) { Year = a; Month = b; Day = c; } public void PrintDate() { Console.WriteLine("{0} - {1} - {2}", Year, Month, Day); } } class Class1 { static void Main(string[] args) { // 두가지 형태(2개의 객체를 만들어)로 값 대입하여 출력 Date date1 = new Date(); date1.setDate(2017, 1, 6); date1.PrintDate(); Date date2 = new Date(2015, 4, 27); date2.PrintDate(); } } }
|
'C#' 카테고리의 다른 글
[C#] - 클래스 배열의 변수과 속성, 인덱스 비교 (0) | 2019.04.08 |
---|---|
[C#] - property(속성) : 클래스 안의 private형 멤버변수에 접근 (0) | 2019.04.05 |
[C#] - 구조체, 클래스 입출력 : [Serializable] + 컬렉션 + BinaryFormatter (중요) (0) | 2019.04.02 |
[C#] - string 데이터 분리 : Split, Substring, Trim (0) | 2019.04.02 |
[C#] - 텍스트, 이진파일 입출력 : FileStream, StreamWriter / StreamReader (0) | 2019.04.01 |