본문 바로가기

카테고리 없음

8월17일 공부 : 이게..머고...

오늘 3주차 마저 했는데

 

클래스에 벽느꼇습니다...............................

 

일단 정의 하자면

 

클래스 > 설계도 역할이라고 보면 되고

각각 역할에 따라
캡슐 - 기능을 하나의 단위로 묶는것
상속 - 클래스를 확장하여 새롭게 만드는것
 ex)사람(상위 클래스)이라는 클래스에 직장 학생 (하위 클래스)이 있다
다형성 - 다양한 동작을 할 수 있는것
추상화 - 단순화 하여 필요한 기능에 집중하는거 개념을 구현하는 것 세부구현은 뒤로 미룸
객체 - 데이터와 메서드를 가지며 상호작요을 통해 프로그램 이 동작함
이렇게 있고

 

클래스의 구성요소로는 
필드 - 변수
메서드 - 함수
생성자 - 자동으로 호출되는 매서드
소멸자 - 해제되거나 소멸될때 나오는 매서드
근데 생성자과 소멸자도 메서드이기 떄문에
사실상 필드와 메서드로 이뤄져있다....라는데 사실 뜻만 봐서는 이해를 잘 못하겠습니다...일단 해봐야죠

 

 

 

 

Person 이라는 클래스를 만들고

이름과 나이는 정의한 다음

콘솔에 맞는걸 출력하는 것

 

static void Main(string[] asgs)로 정의하는데

여기서 Person p = new Person();이라고 되어있는데

person p 에 new Person을 연결해놨다는 뜻

(이때 이걸 래퍼런스 타입이라 한다)

person p 새로 공간이 생긴게 아니라 주소를 저장할수있는 p가 생긴것이고

new Person은 실제로 있는 공간 같은 개념

 

이제 name에 john을 넣고

age에 30을 넣으면

각각 출력이 된다

 

 

 

부모 클래스
자식 클래스

 

이미 부모클래스한테 

public string Name { get; set; }
        public int Age { get; set; }

        public void Eat()
        {
            Console.WriteLine("Animal is eating.");
        }

        public void Sleep()
        {
            Console.WriteLine("Animal is sleeping.");
        }
    }

를 받았다

public class Dog : Animal 와 public class Cat : Animal에 아무런 내용없이 출력하게 되면

Animal is eating 이랑 Animal is sleeping 만 나오게 되지만 

 

Dog에는 Dog is bark을 넣어주고

Cat에게는 Cat is meow 과 Cat sleep을 넣어줬다

 

그러면 출력시 Dog는 

Animal is eating

Animal is sleeping

Dog is bark

이 출력되고

 

Cat은 

Animal is eating

Animal is sleeping

Cat is meow가 출력되어야 하지만

따로 Cat Sleep을 출력시키라고 넣어주었기 때문에

Animal is eating

Cat Sleep

Cat is meow가 출력된다

값을 매기는 구조체

구조체로 인해 cat에 있는 sleep이 더 가까워 뜨는거라고 하는데...사실 진짜 모르겠다

이해하려고 몇번 돌려봤지만 아 이게 머가 먼지 이해할듯 말듯ㅎ ㅏ면서 어렵내

닿을 듯 말듯하는 이 짜증나는 기분...... 내일 좀 더 해봐야겠다