C# 언어 8강. 클래스 (2/2) - 업그레이드 추가 > c#

무료강좌-디비라

c#

Microsoft C# Programming 강의 리스트

※ 가장 하단이 첫강좌입니다

나우캠퍼스 | C# 언어 8강. 클래스 (2/2) - 업그레이드 추가

본문

※ 영상을 선명하게 보기 안내
  1. 유튜브 영상에서 오른쪽하단에 톱니바퀴를 클릭합니다.
  2. 팝업목록에서 "품질" 선택하세요.
  3. 원하는 해상도를 선택해주세요.
※ 모바일에서 Wifi가 아니라면 데이타가 소진될 수 있으니 주의바랍니다.
나우캠퍼스님의 c#강의 청각장애인을 위한 자막
15444117199329.jpg

 으 으


이전 강에 이어서 객체 생성과 멤버 접근에 대해서 좀 더 명확히
살펴보도록 하겠습니다
아 먼저 시 샵에서 객체 생성에 대한 부분은 인유 아구아 는 그저 요
키워드를 사용을 해야지만 객체 생성이 됩니다
그래서 아직 명확하지 줘 자 그 다음에 객체 해제 에 대해서는 이제
가비지 컬렉터 6 등장을 합니다
그래서 객체 제를 우리 프로 레모 해준 것이 아니라 가비지 컬렉터가
해주기 때문에 오히려 어 그 객체 해제에 대해서 우리가 신경쓸 필요가
전혀 없죠 그래서 싶을 뿐 에서는 100 체제를 하기 위해서는 뭐 tt
뭐 이런 그 키워드를 사용 했는데 이것을 사용 안 했을 때 아직까지
메모리 해제 되지 않고서 남아있는 경우가 있죠 그래서 10불 불로 작성한
프로그램들은 이제 메모리 누수 만 전문적으로 찾아주는 그런 프로그램이
있었어요 그래서 그것을 돌려서 실제로 찾아내고 또 그런 부분들을 수정하고
했었는데 이제 시 샵에서는 그런 부분들이 아주 깨끗하게 해제 해결이
되겠죠
그 다음에 지금보다도 이 가비지 컬렉터가 전면 똑똑해 집니다
그렇기 때문에 이 메모리 에 누수에 대해서는 우리가 조금 신경을 덜 써도
되고 그 대신 무엇에 만 생성한 데 집중해서 하기만 한 달 된 형태죠
그렇기 때문에 이 부분은 굉장히 어 처음에는 4 쫌 그렇지 하니까 좀
진지 판 감도 있지만 프로그래밍을 하면 할수록 굉장히 편리 하다는 것을
여러분들이 스스로 경험을 하게 될 것입니다
자 그러면은 요 부분도 한번 소스를 보도록 하겠습니다
소스를 보겠습니다 자마 이 클래스를 선호하고 있습니다
그 다음에 이렇게 변수를 선언 하고 있고요 그 다음에 프린트 a 그
다음에 프린트 p 있게 돼 있죠 자 요것은 앞에 퍼블릭 있기 때문에
외부에서 호출할 수 있습니다 하지만 프린트 비 같은 경우는 앞의 없기
때문에 파이 베이트 형태가 되죠
그렇기 때문에 외부에서 호출할 수 있다 없다 호출 할 수 없죠
자 그래서 요마 이 클래스를 생성을 해야 되겠죠 그래서 생성을 하는 어
그 시점은 바로 프로그래머가 잡아 줘야 되겠죠
자 그래서 뉴 를 통해서 생성합니다 마이 클래스 에서 테스트 생성 했구요
그 다음에 테스트에 있는 말이라고 하는 요 변수는 어떻습니까
앞에 퍼블릭 이 때문에 당연히 어떻습니까 왜 소치 할 수 있죠
그 점을 찍으면 요 부분이 나옵니다 그래서 시비를 우리가 이렇게 할 수
있고요 그 다음에 요것도 어떻습니까 그대로 출력을 할 수도 있죠
예 그래서 이렇게 할 수 있고요 그 다음에 또 하나 노토 확인해봐도
자 테스트 점 찍었을 때 프린트 b 가 나오지 않죠
예 그저 큰 한정자 때문에 흐르죠 fa 를 통해서 이렇게 하게 되는 게임
않은 출력할 수가 있습니다
그리고 난 다음에 끝입니다 어 딜리트 에 대한 부분도 없구요
그 다음에 뉴욕 우만 우리가 푸른 안에서 해주면 되고 우리가 그 요그 u
를 통해서 생소한 이 테스트 객체는 이제 메인이 종료 함과 동시에 가비지
컬렉터 로 너무 하겠죠
가비지 컬렉터가 이제 해제를 해 줄 겁니다 그렇죠
자 이렇게 해서 한번 시험을 해 보게 되면은 당연히 이 워치
lcb 클래스의 이라고 하는 결과를 얻어낼 수가 있죠

분 소수를 통해서 우리가 가비지 컬렉터가 실제로 움직인 것은 보이지는
않지만 내부적으로 이러한 메모리 해제 에 대해서 이제 관여한다는 것을
이제 알 수가 있습니다
어 그 다음에 멤버 접근에 대한 사용입니다 접근 한 정자의 따라서 적금
제안하는 거울이 제가 다 해봤죠
그 다음에 맴 객체 멤버는 점 과 함께 표기를 했죠 그래서 오브젝트 내
임 점 변수 점 메쏘드 이런 형태로 사용했습니다
그 다음에 점 을 찍었을 때 업이 줄수도 인터넷엔 쓰기는 ex2 해서
우리 사용할 수 있는 멤버에 대해서는 그 리스트가 좀 나오죠
4 그것을 통해서 도 우리가 이 그 접근 한 정자가 정확히 사용되는지를
확인을 해볼 수가 있습니다
그러면요 점 찍는거 뭐 이 제가 다 해봤지만 한 번 요것도 소스 볼게요
소스를 보겠습니다 자 마이클 s 도 있구요 1 먼 스 데 이 되어
있습니다 그 다음에 퍼블릭 으로 되어 있죠
그런데 퍼블릭 의해서 프린트 에서 요렇게 멤버를 사용하고 있습니다
엄 앤 모어 안에서 ms 워드 들은 멤버의 자원들 다 사용할 수가 있죠
자 그 다음에 퍼블릭 으로 되어 있기 때문에 외부에서도 전부다 호출 할
수가 있습니다
자 그래서 지금 메인에서 이렇게 생성 하죠 생성하고 그 다음의 일 먼 스
데 이 해 놓고 그 다음에 각각의 값을 이렇게 세덤 하죠
즉 이렇게 세 급한 부분이 외부에서 어 이 그 클래스 내부에 멤버를
사용하는 것이죠
그 다음에 프린트 했습니다 이것은 어떻습니까 외부에서 엄 s 클래스 의
메소드를 호출 하는 것이죠
크린 미카게 되면 뭐 2018 년 도 2월 뭐 14회 이렇게 출력이 될
것입니다 그래서 중요한 것은 아 클래스 의 멤버 에 접근하기 위해서는
이렇게 점을 찍어 줘야 된다는 거
그렇죠 그래서 어 쉐이브 불 같은 경우는 점도 있었고요
그 다음에 요것도 있었죠 예 하지만 이 모든 부분들이 이제 p 가
없어지면서 이 점 으로 저자 통일 했다는거 고만 기억을 해 볼 수가
있습니다
자 그러면 요것도 제가 한번 실행을 해 볼게요
그래서 실행을 하면 은 지금과 같이 2018년 도 1월 24일
이렇게 실력이 된 것을 볼 수가 있습니다
자 그 다음에 요 끝난 이후에는 그 u 를 통해 생성한 마이 테스트라는
객체는 가비지 컬렉터 로
너무 하겠죠 예
네번째 생성자와 소멸자 에 대해서 보도록 하겠습니다 이 부분 요 클래스
에 대한 좀 더 세부적인 부분에 해당이 됩니다
자 먼저 생성자를 본데요 자 이 생성자는 어
먼저 메쏘드 입니다 그 다음에 소비자도 이렇게 매서 도 있죠
하지만 생성자가 호출된 시점과 그 다음에 이소 날짜가 후추 되는 그
시점이 좀 차이가 있습니다
그래서 생성될 보면요 생성자는 객체를 생성할 때 즉 객체를 생성할 때 뭐
언제 씁니까 다니니 프 로렌 코드 안에서 u 연산자를 사용할 때 이겠죠
그때 어떻게 자동으로 호출되는 메소드를 생성자 라고 얘기합니다
그렇죠 그 다음에 소멸자 는요
객체가 솜을 낼 때 호출되는 메소드로 서 객체 소매는 언제 섬이 됩니까
바로 가비지 컬렉터가 아 관련 할 때죠
그래서 이 소멸자 와 생성자에 호출된 시기를 이렇게 비교해본 보면요
생성된 u 를 통해서 박 말씀드렸듯이 그 다음에 손에 짜는 가비지 컬렉터
에 의해서 이제 고추 되는 그런 메소드가 바로 생성자와 소멸자 가
있습니다
그 다음에 이 부분은 우리가 클래스 안에서 더 많이 사용됩니다 특히나
생성자에 는 우리가 많이 사용되고 요 소 물자 같은 가비지 컬렉터 에서
어찌 가 알아서 자 착착 하기 때문에 우린 별로 크게 신경 쓸 필요는
없죠
자 생성자 도요 기본 생성자가 있는 반면에 또 우리가 임의로
그 생성자에 매개변수 라든가 이런 것을 주어서 왜 생성할 때 외부에서
내부로
그 값을 어 무언가를 가지고 끌고 들어갈 수 있는 그 부분들을 명시를 할
수가 있습니다
그래서 고 두부를 보면요 자 먼저 기본 생성자 입니다
기본 생성자는 어 지금 말씀드린 것 같이 클래스 명과 같은 이름을 쓰고요
그 다음엔 2턴 형이 없습니다 또한 여기는 즉 명시가 안되는데요
매개변수가 저 함수를 저도 매기면 수가 있죠
근데 매개 변수가 없습니다 그 다음에 접근 환경 안정 자는 항상 퍼블릭
으로 되어 있어야만 위해서 기본 생성자는 요 원칙을 지켜 줘야 하지만 어
변 u 를 통해서 생성할 때 자동으로 호출이 됩니다
자 그러면은 요 또 소스 엄 볼게요
소스를 보면 요마 이 클래스 있습니다 그 다음에 스트링 메세지 돼 있고요
자 여기에 바로 봅니까 생성자 입니다 보면요
먼저 그 클래스 명과 똑같죠
그 다음에 버스가 매개 변수가 없습니다 그 다음에 퍼블릭 입니다
그렇죠 그 다음에 리턴 타이 l 형이 있습니까 없죠
젤리 턴을 명시하지 않습니다 자 그 다음에 요 생성자에서 는 주로 하는
역할이 뭐냐면 초기화 에 대한 부분이죠 특히 초기 와중에서도 요런 맴돈
에 대한 초기화가 주를 이룹니다
자 그래서 메시지의 있고 헬로 월드 해서 어그 이런 문자열을 이렇게
초기화를 하고 있죠
그 다음에 요 그 기본 생성자는 우리가 호출하는 것이 아니라 언제 뉴 를
통해서 생성할 때 자동으로 호출되지 조
그래서 어 자동 호출되기 때문에 프린트 메시지의 서 프린트를 출력하게
되면 은 자동으로 주 되기 때문에 내가 이 익어서 호출 하지 않아도
헬로 월드 가 3 업이 되어 있겠죠 예 그래서 고를 실제 확인을 해보면
예 지금 아치 헬로 월드 이렇게 출력된 것을 확인해 볼 수가 있습니다
기본 생성자 외에 또 이미 에 생성자가 있습니다 그래서 이 생성자 도
호출은 요 유 를 통해서 객체를 생성할 때 5 출 되는데
어그 호출될 때 우리가 외부에서 어 그 값을 이제 내부로 가져갈 수
있도록 그렇게 생성자를 만들어 줄 수가 있죠 그래서 앞에서는 그 초기화
에 대한 부분들을 클래스 안에서 했다고 하면 은
어 지금 임의로 만들어 주는 이 생성자는 외부에서 그 클래스 안에
초기화를 할 수 있도록 하는 그런 통로를 열어주는 역할을 하죠
자 그래서 이런 보면 매매 수가 있다 라고 되어 있고요 그 다음에 리턴
영은 없습니다 이건 아까 씁니다
그 다음에 접근 한 정자는 퍼블릭 오 요 그 다음에 여기도 조금
빠졌는데요 요때 의 생성자에
그 생성자에 그 클래스 메소드 명 매수 2명은 클래스 명과 그쵸
같아야 됩니다 같아야 항
요 부분이 빠졌네요 해서 어려움만 염분이 조명수 하면 될것 같고요
그 다음에 뭐 매기면 수가 있다라는 것만 기본 생성자와 틀릴 뿐 나머지
떠억 같습니다
자 이거 또 한 번 소스를 보도록 하겠습니다
이전에 소스를 그대로 사용했습니다 보면요
자 마이클 s 있고요 그 다음에 쐐기 있습니다
그 다음에 방법 설명 드렸듯이 생성자에 그 생성자의 메소드 병은 클래스
명과 똑같아야 겠죠 그래서 이렇게 똑같이 했구요
그 다음에 퍼블릭 으로 명시했습니다 그 다음에 외부에서 내부로 3 더블
해서 들어가기 때문에 이렇게 매개 변수를 이렇게 주었구요
그래서 여기서 입력된 그 값을 멧세지
즉 뭡니까 이 멤버 변수에 다가 저장하도록 이렇게 되어 있죠
자 그 다음에 고 그것을 출력하는 요 프린트 메시지 라고 하는 요
메소드가 있습니다
그 다음에 것도 앞에 퍼블릭 5 되어 있기 때문에 우리는 객체를 생성한
후에 요 메서드를 사용할 수 있다 없다
사용할 수 있지요 의
그래서 메인에 있습니다 자 마이클 s 데 있고 위가 기본 생성자는
어떻습니까 요 요 부분이 없이 이렇게 말해줬는데
어 이제는 이 부분이 정맥 이럴 수가 있기 때문에
마이 클래스 다음에 내가 넣고자 하는 요 문자열을 인정했습니다 서 해피
라고 하는 분들이 이제 이 메시지 라고 하는 즉 어마 이 클래스 그의
이런 멤버의 초기 약값으로 이제 개입이 되는 것이죠
그 다음에 테스트 프린트 멧세지 하게 되면 해피가 이렇게 주력이 될
겁니다 자 그래서 요것도 제 값만 실행해보면 요
자 지금과 같이 이렇게 해피가 추억 된 것을 확인해 볼 수가 있구요
자 그 다음에 이제 소멸자 형식을 볼게요
소밀 자도 어떻습니까 클래스 명과 같습니다
그 다음에 이게 당연히 인턴 형이 없어 있죠 왜 그렇습니까
객체가 헤드 되는데 이 대통령이 왜 그럼 아 그렇죠 아니었구요
그 다음에 접근 한 정자가 없습니다
그 다음에 소밀 자는 특이하게 2 치트 표시를 앞에 해 주도록 되어
있습니다
자 그래서 클래스 담 의 마이클스 스 돼 있고요 어쩌면 틸드 에서 마이
클래스 에서 이렇게 표시하도록 되어 있습니다 그래서 아 요런 소밀 자도
없는 것이 아니구나 있지만 가비지 컬렉터 에서 좀더 알아서 하기 때문에
우리가 이 손 일자에 대한 부분을 메 따로 명 살피고 구나
앙 것만 우리가 이해를 하시면됩니다 해서 어 10부 풀을 하셨던 그
친구들은 어 조금 좀 여우 부분이 좀 지 찜 할 수도 있는데 감행할 수
편해집니다 아예
아 어 그래서 솜 일자 의 특징은 요 클래스 에 많이 있고요
당연히 줘 그 다음에 오직 단계 있고요 그 다음에 상속 이라든가 뭐
브로드 다해야 될 수가 없겠죠
그 다음에 소매 일자는 우리가 임의로 호출을 할 수 있다 없다 할줄
없습니다
이건 좀 나아 가비지 컬렉터 에서 하는 고 부분이죠
그 다음에 소 날짜는 접근한 점잖아 매개 변수가 있다 없다 특히 남의
집에서 있다 없다
없습니다 정해서 오로지 지금 앞에서 봤던 이런 형태로 얼음 대로만 사용할
수 있는 것이죠
예 그래서 요것도 한번 소스 1 볼게요
아 소멸 제 예를 보겠습니다 자 마이 클래스 돼 있죠
소밀 자는 클래스 명과 똑같아야 되죠 그래서 이름이 같습니다
그럼 이 앞에 딜듀 표시가 있고요 그 다음에 한정자 없죠
그 다음에 맥이 면서 둘 수 없고요 그 다음에 솜 1장 호출될 때 증가
같이 손을잡고 추
이렇게 표시를 할 수 있도록 이렇게 푸름을 작성했습니다
자 그 다음에 메인 있구요 메인 에서 유 를 통해서 생성을 했습니다
생성 함과 동시에 어이 메인이 종료되어 지죠
그렇기 때문에 좀 될 쯤에 바로 가비지 컬렉터 에 의해서 이제 그 섬
일자가 호출이 되겠죠
그러면 이제 소밀 저그 축 이라고 하는 로 부분이 메시지가 화면이 출력이
될 겁니다 자 그래서 요 부분을 제가 한번 실행을 해보면 요
증가 같이 소멸자 호출 되어 호출되어 따라하는 메시가 추력 됐고 우리가
소스 안에서는 어이그 마이 클래스라고 한손을 자 를 호출하지 않은 것을
확인해 볼 수가 있습니다
자 다섯번째 정적 멘 보선 혼과 사용에 대해서 살펴보도록 하겠습니다
그래서 요 부분은 이제 그 뭐라고 할까요
각각이 어느 마다 약간의 차이가 있고요 그 다음에 그 쓰는 용도에 의해
용도가 약간의 차이가 있으며 해서 곳을 비결 해 보시면서 요 내용을
보셨으면 좋겠습니다
자 언어에 따른 스테 티 어 역할 비교 및 아서 cc 10불 시 샵에서
시기 얼만 이렇게 좀 보고 있는데요
시에서는 변수 값을 유지 하죠 그래서 스태틱 을 이렇게 보겠습니다
반면 20불 뿌리에서 는 객체 안에서 변수를 공유하고자 할 때 많이 게의
이라고 하는 클래스를 만에 테스트 티와 1
d2 그 다음에 디스 d
이렇게 어 쭉 생성했습니다 근데 예의라고 하는 이 클래스 안에 스태틱
으로 선언된 그 다음에 c 라고 하는 변수가 있다 라고 합시다 int 형
시위가 이동합시다 그러면 이 씨 라고 하는 이 변수는 며 피워 않기 토티
스리 의 공유되는 그런 변수 2 줘
그래서 신의 값이 바뀌면 은 이 전체의 그 값에 영향을 다 주도록 어학
오자 할 때 보통 스트레이트를 많이 있습니다
자 그래서 이제 스틱을 이용해서 우리가 15부 에서만 했던 것은 어 이제
싱글 톤 이라든가 뭐 이런 그 디자인 패턴 들의 주로 많이 사용을 했었죠
자 그래서 아무튼 이 변수를 개최한 해서 변수를 공유할 때 보통 아
있었구요
그 다음에 시 샵에서 스태틱 은요 대체 를 생성하지 않고 맴버를 사용할
때 즉 멤버의 메쏘드 라든가 아니면 멤버 변수를 우리가 사용할 때 주로
esd 틱을 선언해 놓고 주로 사용합니다
그래서 그 얀 예로써 컨 솔 라이트 라인 같은 경우에도 이 라이트 라인은
콘솔의 클래스 에 있는 그런 멤버 메소드 있죠
예술대 임에도 불구하고 우리가 콘솔이 라는거 객체를 생성하지 않고도
사용할 수 있는 것은 이 라이프라인 에스테틱 메소드의 이기 때문에 그것이
가능하죠
자 그러면은 여기에 대한 부분도 리소스를 보면서 또 이해를 하도록
하겠습니다
stat 에 대한 어서 사항을 보도록 하겠습니다 자 마이 클래스 도
있구요
그다음 sdt 넘버 돼 있죠 그 다음 step 큰 그대 있습니다
그래서 이것은 스트레이트로 되어 있기 때문에 마이 클래스를 생성한 이전에
이미 넘버 라고 하는 부분과 프린트 라는 분들이 이제 메모리 아예 미리
생성이 되어 있는 형태 2 줘
자 그래서 보면은 어 마이 클래스 점 프린트 개 마이 클래스 객체를
생성하지 않고도 바로 이렇게 사용할 수 있고요 그 다음에 라이트 라인
이어서 마이 클래스 점 그 다음에 넘버 이렇게 해서 객체를 생성하지 않고
그 클래스 의 넘버와 그 다음에 그 메소드를 이런 형태로 사용할 수
있습니다
저희들 mi 클래스 좀 언어 넘버 5에서 입에 이렇게 어 셋 업을 하고
있죠
그리고 난 후에 또다시 마이클 s 테스트에서 뉴 를 통해서 생성을 하고
있습니다
자 하지만 이 뉴 넘버 라는 세티 변수와 그 다음에 프로이트는 뉴 하고
상관없이 이미 미니 생성이 되어 있는 형태죠
예 그렇기 때문에 유 라고 하는 것은 무엇에 만 해야 됩니까
객체 생성의 만 해당이 되지 이런 스 데이 틱 생성하고 는 전혀 상관이
없죠
자 그래서 에서 마이 클래스 넘버를 출력하게 되면 얼마가 추억 됩니다
여기서 202 미리 3 업이 되어 있기 때문에 이 메 이게 출력이 됩니다
자 그래서 익었다 먼 실행 해 볼게요
극 여기서 보게 되면 헬로 월드 있게 돼 있고요 10일에 있고요 그
다음에 202 이렇게 출력된 것을 확인해 볼 수 있죠
아 그렇구나 스테이 틱을 하게 되면 객체 생성 과는 상관이 없구나
그래서 그 개체 생각하는 상관없이 그 메소드 를 쓸 수가 있구나 라는
분들을 여기를 통해서 확인해 볼 수가 있었습니다
스테 팅 멤버 를 호출하는 그예 중에서 이 메인 한해 에서 이제
멤버 를 호출하는 그런 때를 생각해 볼 수가 있습니다 특히나 이 메인
어떻습니까
클래스의 메소드 1종 이고요
그다음 stat 그 로 되어져 있죠
예 그렇기 때문에 이 메인 으 어 그 클래스 의 생성과 상관없이 시라
에서 호출 합니다
그런데 이 메인 안에 또 외부의 그런 그 멤버를 호출해서 사용하는 경우가
있잖아요 그쵸
그럴 경우에는 이 메소드에 대해서는 무소 선언되어 있어야 됩니다
스태틱 으로 선언되어 있어야 지만 고어 메소드 를 2배인 안에서 사용할
수가 있겠죠
예 그래서 고 이해를 보도록 하겠습니다 자 우리가 그 비주얼 스튜디오 를
통해서 프로젝트를 생성하게 되면 요
어 지금

댓글 0개

등록된 댓글이 없습니다.

 
Total 64건 1 페이지
썸네일
제목

Menu