45
C# 스스스 -2 UPnL 스스스 1

C# 스터디 -2

  • Upload
    clark

  • View
    96

  • Download
    0

Embed Size (px)

DESCRIPTION

C# 스터디 -2. UPnL 장준영. 다음주 에 만들 것. 재미있고 간단한 총게임 ?. 다음주 에 만들 것. ( 사실 오늘 하려고 했는데 완성을 못함ㅠ . ㅠ ). 오늘 배울 것. 객체지향 프로그래밍 (OOP) 클래스 (class) 속성 / 메서드. 객체지향 프로그래밍. OOP. 객체지향 프로그래밍. 객체 들의 모임으로 해석하는 프로그래밍 방식 일종의 철학 ?. 객체. 속성과 메서드 ( 행동 ) 가 있는 것 객체가 정확히 뭐다 ! 라는 설명보다는 예 시를 드는 것이 더 빠름. 객체. - PowerPoint PPT Presentation

Citation preview

Page 1: C#  스터디 -2

1

C# 스터디 -2UPnL 장준영

Page 3: C#  스터디 -2

3

다음주에 만들 것( 사실 오늘 하려고 했는데 완성을 못함ㅠ .

ㅠ )

Page 4: C#  스터디 -2

4

오늘 배울 것객체지향 프로그래밍 (OOP)클래스 (class)

속성 / 메서드

Page 5: C#  스터디 -2

5

객체지향 프로그래밍OOP

Page 6: C#  스터디 -2

6

객체지향 프로그래밍객체들의 모임으로 해석하는 프로그래밍

방식일종의 철학 ?

Page 7: C#  스터디 -2

7

객체속성과 메서드 ( 행동 ) 가 있는 것객체가 정확히 뭐다 ! 라는 설명보다는 예시를 드는 것이 더 빠름 .

Page 8: C#  스터디 -2

8

객체사람

키 , 몸무게 , 나이와 같은 속성 걷는다 , 먹는다와 같은 메서드

Page 9: C#  스터디 -2

9

클래스 (class)

사람은 어떤어떤 속성과 메서드를 가지고 있다 .

객체를 정의 !

Page 10: C#  스터디 -2

10

인스턴스 사람이 뭐다를 class 로 나타낸다면 , 사람 하나하나를 실제로 만든 것 Person ybbarng = new Person(“ 방용배” );

-> 방용배라는 인스턴스를 만듦

Page 11: C#  스터디 -2

11

인스턴스Person algy = new Person(“ 알게이” );Person doju = new Person(“ 임동재” );Person hoki = new Person(“ 황호기” );

Page 12: C#  스터디 -2

12

속성용배의 키 -> ybbarng.Height;

용배의 나이 -> ybbarng.Age;

~ 의

Page 13: C#  스터디 -2

13

속성속성은 변수처럼 대입할 수 있다 .

용배의 키가 182 이다 .-> ybbarng.Height = 182;용배가 2 살 어려졌다-> ybbarng.Age -= 2;

Page 14: C#  스터디 -2

14

메서드용배가 걷는다 -> ybbarng.walk();

용배가 먹는다 -> ybbarng.eat( 고기 );

Page 15: C#  스터디 -2

15

갤러그를 객체지향적으로 프로그래밍 한다면 ?

Page 16: C#  스터디 -2

16

클래스class Shuttle{}

Page 17: C#  스터디 -2

17

클래스클래스는 다른 파일에 저장하는 경우가 많음 .

찾아보기 쉬우니까 !

Page 18: C#  스터디 -2

18

클래스Person 클래스를 만들어봅시다 .

Page 19: C#  스터디 -2

19

Page 20: C#  스터디 -2

20

클래스namespace ~~{

class Person{}

}// 와 다 만들었다 !

Page 21: C#  스터디 -2

21

속성 변수 선언하듯이 선언 일단 public 을 앞에 붙여보자 .

public string name; // 이름 public int age; // 나이 public int height; // 키

Page 22: C#  스터디 -2

22

속성사실 얘들은 속성이 아니라 필드라고 부릅니다 .

속성은 따로 있는데 필드처럼 보이게 합니다 .

하지만 일단 필드를 속성이라고 알아둡시다 .

Page 23: C#  스터디 -2

23

메서드 인자가 없는 것public void walk(){

Console.WriteLine(“ 걷는다” );}

Page 24: C#  스터디 -2

24

메서드 메서드 내에서 자기 자신의 속성에 접근 가능public void walk(){

Console.WriteLine(name + “ 이 ( 가 ) 걷는다” );}

Page 25: C#  스터디 -2

25

메서드 인자가 있는 것public void eat(string food){Console.WriteLine(food + “ 을 ( 를 ) 먹는다” );}

// 나중에 ybbarng.eat(“ 고기” ); 라고 실행하면// 고기을 ( 를 ) 먹는다가 출력됨 .

Page 26: C#  스터디 -2

26

메서드 함수처럼 리턴값이 있을 수도 있다 . 다음의 함수를 생각해봅시다 .

f(x) = x^2 + x

f(10) = 100 + 10 = 110

Page 27: C#  스터디 -2

27

메서드 사람이 매년 3cm 씩 큰다고 할 때 , n 년 후의 키를 반환public int f(int n){

return height + 3 * n;}

Page 28: C#  스터디 -2

28

여기까지코드

Page 29: C#  스터디 -2

29

Program.cs 로 돌아가서Main 에 입력하세요

Page 30: C#  스터디 -2

30

인스턴스 만들기Person ybbarng = new Person();

Page 31: C#  스터디 -2

31

속성 건드리기 ybbarng.name = " 방용배 "; ybbarng.age = 30; ybbarng.height = 182;

Page 32: C#  스터디 -2

32

메서드 실행 ybbarng.walk(); ybbarng.eat(“ 고기” );

int result = ybbarng.f(10);Console.WriteLine(result);

Page 33: C#  스터디 -2

33

생성자Person ybbarng = new Person();ybbarng.name = " 방용배 ";ybbarng.age = 30;ybbarng.height = 182;

요 네줄을 한 줄로 줄여줌 .

Page 34: C#  스터디 -2

34

생성자 Person.cs 에다가 다음을 추가public Person(string name_, int height_, int age_){name = name_;height = height_;age = age_;}

Page 35: C#  스터디 -2

35

생성자 Program.cs 의 Main 함수에서 다음과 같이 쓴다 .

Person ybbarng = new Person(“ 방용배” , 30, 182);

Page 36: C#  스터디 -2

36

생성자 이렇게 해놓으면 쉽게 다른 사람의 인스턴스도 만들 수 있다 .

Person gaenari = new Person(“ 손도현” , 31, 183);Person nhne = new Person(“ 김도영” , 31, 170);

Page 37: C#  스터디 -2

37

제한자 public 은 뭘까요 ?

Page 38: C#  스터디 -2

38

제한자 Person.cs 에서 public int height 를 private int height 로 바꿔봅시다 .

Page 39: C#  스터디 -2

39

제한자 Program.cs 의 Main 에서 Console.WriteLine(ybbarng.name); Console.WriteLine(ybbarng.age); 는 되는데 Console.WriteLine(ybbarng.name); 은 안됨

Page 40: C#  스터디 -2

40

제한자왜 쓰는지 모르겠다면 그냥 다 public으로 하세요 .

( 나쁜 조언이지만 어쩔 수 없음… )

Page 41: C#  스터디 -2

41

정적 속성 / 메서드 static!

static void Main(string[] args) 에도 있음 .

Page 42: C#  스터디 -2

42

정적 속성 / 메서드 public static int total;

얘는 ybbarng.total 같은 식으로 접근하는게 아니고Person.total 로 합니다 .

Page 43: C#  스터디 -2

43

정적 속성 / 메서드 public static int total;

전체 사람 수 같은 건 각각의 개인이 가지는 속성이 아니라 Person 이라는 전체 클래스가 가지는 것이다 !

Page 44: C#  스터디 -2

44

정적 속성 / 메서드 public static void born(){total++;}

메서드도 마찬가지 정적 메서드에서는 정적 속성만 건드릴 수 있다 .

Page 45: C#  스터디 -2

45

오늘 할 것Person 클래스에 원하는 속성 / 메서드를 하나씩 추가하세요 .

속성 : 몸무게 , 성별 , 별명 등등메서드 : 잔다 , 뛴다 등등