접근 제어 – Example(1)

 

 

 

 

 

using System;

namespace Application2002

{

 

class Rectangle

{

  private double x;

  private double y, z;

  public double GetArea(){

  return x * y * z;

  }

  public void SetValue(double v1, double v2, double v3){

  x = v1;

  y = v2;

  z = v3;

  }

}

 

 

 

접근 제어

 

 

 

 

Ø접근 제어를 사용함으로써 얻을 수 있는 잇점

 

l프로그램의 논리적 오류 검증을 돕는다.

 

l수정하기가 용이하다

 

l소스 파일의 다른 부분에 영향을 주지 않고, 특정 부분을 쉽게 수정할 수 있다.

 

l내부 정보 은닉을 위해 필요하다.

         §어떤 queue를 사용하는 경우, queue에는 enqueue를 통해서만 아이템을 추가 할 수 있게 하고 싶다. 이때 들어있는 “아이템의 개수” 멤버 변수를 public으로 만들어 둔다면, 실제 들어있는 아이템의 개수와 “아이템의 개수” 멤버 변수가 다를 수도 있는 것이다.

 

 

 

 

 

 

 

 

기본 접근 제한자

 

 

 

 

클래스멤버

 기본접근 제한자

허용접근제한자

enum

public

없음

class

private

 public,protected,

internal, private,

protected internal

interface

public

없음

struct

private

 public,

internal,

private

 

 

 

 

 

 

 

접근 제한자(2)

 

 

 

 

 

 접근제한자

 클래스내부

 서브클래스

 외부클래스

 프로젝트

 public

 O

 O

 O

 O

 private

 O

 

 

 

 protected

 O

 O

 

 

 internal

 O

 O

 O

(같은파일)

 

 protected internal

 O

 O

 O(같은파일내)

X(다른파일)

 

 

 

 

 

 

접근 제한자(1)

 

 

 

 

 접근제한자

 설명

 public

모두가 이 멤버를 사용가능

클래스 및 객체의 외부 인터페이스 제공

 private

클래스 내부에서만 사용가능

클래스가 제공하는 기능의 내부 구현

 protected

클래스 내부와 파생 클래스(상속받은 클래스)에서 사용가능

 internal

동일 파일 내의 클래스에서 사용가능

 protected internal

 protected 또는 internal

 

 

 

 

 

클래스의 연산자, 이름짓기

 

 

 

 

 

Ø변수, 메소드 접근 연산자
l(dot) 연산자( . )를 이용한다
lCircle1.radius, Circle1.GetArea()

 

 

Ø이름 짓기
l클래스 이름은 대문자로 시작하며, 변수는 소문자, 메소드는 대문자로 시작한다.
l두 경우 모두, 각 단어가 시작할 때마다 대문자로 한다
lConsole 클래스, CharAt(int) 메소드

 

 

 

 

클래스의 인스턴스(Instance)

 

 

 

 

Ø인스턴스(Instance)
l객체(object)와 동의어
lnew 수식에 의해 만들어진다
l각각의 인스턴스들은 그 클래스가 정의한 변수와(논리적으로) 메소드를 갖는다.

 

 

 

 

Circle myCircle =  new Circle();  // 인스턴스의 생성

 

 

클래스 정의하기

 

 

 

 

 

Ø클래스의 형태 Example

  class Circle // Circle 클래스의 정의

  {

  private double radius; // 필드(멤버 변수) 정의

  public double GetArea() // 메소드 정의

  {  // ……

  }

  }

 

 

 

* 필드 메소드class 괄호 안에 들어가는 것은 모두 멤버이다.

 

 

 

+ Recent posts