this란?

클래스의 현재 인스턴스를 가리키는 키워드

 

https://www.youtube.com/watch?v=w3YquM7W_cY&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=34

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Step34
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Character hong = new Character("홍길동", 3, 10);
            Character lim = new Character("임꺽정", 2, 12);
            Console.WriteLine("캐릭터의 이름: {0}, 공격력: {1}, 체력:{2}/{3} ", hong.name, hong.damage, hong.hp, hong.maxHp);
            Console.WriteLine("캐릭터의 이름: {0}, 공격력: {1}, 체력:{2}/{3} ", lim.name, lim.damage, lim.hp, lim.maxHp);
        }
    }
}

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Step34
{
    internal class Character
    {
        //맴버변수 정의
        public string name;
        public int damage;
        public int hp;
        public int maxHp;

        //생성자
        public Character(string name, int damage, int maxHp)
        {
            this.name = name;
            this.damage = damage;
            this.maxHp = maxHp;
            this.hp = this.maxHp;



        }
    }
}

 

 

 

'Study > C#' 카테고리의 다른 글

[C#] 상속  (1) 2024.06.03
[C#] static 한정자  (0) 2024.06.02
[C#] 점연산자 NullReferenceException  (0) 2024.05.30
[C#] 맴버변수와 지역변수  (0) 2024.05.29
[C#] 생성자 메서드  (0) 2024.05.29

맴버변수 ?

 

클래스에 정의된 변수

맴버변수는 인스턴스가 메모리에 있는동안 접근 가능

 

지역변수?

메서드에 정의된 변수

메서드가 실행되는 동안 접근 가능

https://www.youtube.com/watch?v=tR376tcsgag&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=32

 

https://www.youtube.com/watch?v=tR376tcsgag&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=32
https://www.youtube.com/watch?v=tR376tcsgag&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=32
https://www.youtube.com/watch?v=tR376tcsgag&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=32
https://www.youtube.com/watch?v=tR376tcsgag&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=32

 

가비지 컬렉션?

메모리를 자동으로 관리해주는 메커니즘

 

https://www.youtube.com/watch?v=tR376tcsgag&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=32
https://www.youtube.com/watch?v=tR376tcsgag&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=32
https://www.youtube.com/watch?v=tR376tcsgag&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=32

 

https://www.youtube.com/watch?v=tR376tcsgag&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=32

 

null은 참조하지 않음

 

https://www.youtube.com/watch?v=tR376tcsgag&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=32
https://www.youtube.com/watch?v=tR376tcsgag&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=32

 

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Step32
{
    internal class Car
    {
        public string name;
        public float speed;
        public Car(string carName)
        {
            name = carName;
            Console.WriteLine("{0}이(가) 자동차가 생성되었습니다", carName);
        }

        public void Move(float moveSpeed)
        {
            speed = moveSpeed;
            Console.WriteLine("{0}속도로 이동합니다", moveSpeed);
        }
    }
}

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Step32
{
    internal class Car
    {
        public string name;
        public float speed;
        public Car(string carName)
        {
            name = carName;
            Console.WriteLine("{0}이(가) 자동차가 생성되었습니다", carName);
        }

        public void Move(float moveSpeed)
        {
            speed = moveSpeed;
            Console.WriteLine("{0}속도로 이동합니다", moveSpeed);
        }
    }
}

 

'Study > C#' 카테고리의 다른 글

[C#] this 키워드  (0) 2024.05.31
[C#] 점연산자 NullReferenceException  (0) 2024.05.30
[C#] 생성자 메서드  (0) 2024.05.29
[C#] 클래스와 new 연산자  (0) 2024.05.29
[C#]메서드 반환타입  (0) 2024.05.28

생성자 메서드?

 

class 내부에 정의된 특수한 메서드

 

생성자?

 

이름이 해당 형식의 이름과 동일한 메서드

 

메서드 이름과 매개 변수 목록만 포함되고

반환 형식은 포함되지 않는다

 

클래스 정의

class Car

{

}

 

생성자 메서드 정의

class Car

{

Car()

{

}

}

https://www.youtube.com/watch?v=S8oQU_FENLw&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=31

 

 

일반 메서드는 정의 후 호출을 통해 실행된다.

 

생성자 메서드는 객체생성시 자동으로 호출된다

 

생성자를 통해 맴버변수의 기본값을 설정할 수 있다

 

 

 

매개변수가 있는 생성자 => 객체 생성시 값을 전달

 

예를들어 자동차 객체를 생성할 때 자동차 이름을 전달

https://www.youtube.com/watch?v=S8oQU_FENLw&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=31

 

https://www.youtube.com/watch?v=S8oQU_FENLw&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=31
https://www.youtube.com/watch?v=S8oQU_FENLw&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=31

 

https://www.youtube.com/watch?v=S8oQU_FENLw&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=31

 

 

 

 

생성자는 클래스안에 정의된 특수한 메서드
반환 타입이 없으며 이름이 클래스명과 동일한 메서드
인스턴스가 생성된 후 자동으로 호출
매개변수가 있는 생성자도 있다.

 

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Step31
{
    internal class Car
    {
        public string name; //맴버 변수

        //생성자 메서드는 클래스의 이름과 동일
        //외부로부터 전달된 인수(문자열값은) 매개변수
        //carName에 할당된다.
        public Car(string carName)
        {
            //생성자에 반환 타입을 작성해서는 안된다.
            Console.WriteLine("생성자가 호출 됨");
            //매개변수 출력
            Console.WriteLine("매개변수 : {0}", carName);
            //맴버변수 출력
            Console.WriteLine("맴버변수 : {0}", name);
            //생성자 메서드 호출이 완료되면
            //매개변수의 값이 사라지므로
            //매개변수의 값을 맴버변수에 할당
            name = carName;
            Console.WriteLine("맴버변수 : {0}", name);
            //이렇게 할당된 맴버 변수는
            //해당 객체의 수명동안 사라지지 않는다
        }
    }
}

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Step31
{
    internal class Program
    {
        static void Main(string[] args)
        {
            //인스턴스가 호출 된후
            //인스턴의 생성자가 호출된다

            //매개 변수가 있는 생성자일 경우 반드시 인수를 전달해야 한다
            //new Car("싼타페");

            //변수에 Car인스턴스 할당
            Car car = new Car("싼타페");
            //car변수의 속성 name 출력
            Console.WriteLine(car.name);
            
        }
    }
}

'Study > C#' 카테고리의 다른 글

[C#] 점연산자 NullReferenceException  (0) 2024.05.30
[C#] 맴버변수와 지역변수  (0) 2024.05.29
[C#] 클래스와 new 연산자  (0) 2024.05.29
[C#]메서드 반환타입  (0) 2024.05.28
[C#] 메서드 매개 변수  (0) 2024.05.28

메서드란?

일련의 문을 포함하는 코드 블록

특정 작업을 수행하기 위한 일련의 명령문이 포함된다.

 

값을 반환할 수 있다.

 

ex)원주율의 값을 반환하는 메서드

https://www.youtube.com/watch?v=Y_SP8FBlr9E&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=29

 

값을 반환하는 메서드라면

반환 값을 변수에 할당할 수 있다.

float pi = GetPi();

 

메서드 반환 타입은 반환 값에 따라 결정된다

 

'Study > C#' 카테고리의 다른 글

[C#] 생성자 메서드  (0) 2024.05.29
[C#] 클래스와 new 연산자  (0) 2024.05.29
[C#] 메서드 매개 변수  (0) 2024.05.28
[C#] 메서드 정의 및 호출  (0) 2024.05.28
[C#] Continue문  (0) 2024.05.27

메서드??

일련의 문을 포함하는 코드 블록

 

특정 작업을 수행하기 위한 일련의 명령문이 포함된다

 

문법(syntax)

접근제한자 반환타입 메서드이름()

{

}

 

접근 제한자?

 

메서드에 접근할 수 있도록 public 또는 private등의 접근 수준을 정의

https://www.youtube.com/watch?v=qBshDhSxqHA&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=27

 

반환 타입?

반환 값의 데이터 타입

값을 반환하지 않으면 반환타입을 void로 해야 한다.

 

메서드명 : 식별하기 위한 고유한 이름이어야 한다

 

메서드 정의하기

 

1. 어떤 기능을 실행 할지 생각

 

2. 동사로 시작하는 첫 문자 대문자

 

메서드 정의

void SayHello()

{

     //실행할 명령문

}

 

클래스 내부에 정의해야 한다.




 

 

클래스 내부 Main 메서드 위 또는 아래 상관은 없으나 아래쪽에 선언하자

 

메서드 호출

정의와 기능이 구현되었으면 언제든지 사용 가능

 

 

 

메서드는 코드 중복을 줄여 주고 코드 재사용성을 향상시켜 준다.


'Study > C#' 카테고리의 다른 글

[C#]메서드 반환타입  (0) 2024.05.28
[C#] 메서드 매개 변수  (0) 2024.05.28
[C#] Continue문  (0) 2024.05.27
[C#] break  (0) 2024.05.27
[C#] 반복문 while문  (0) 2024.05.27

continue문?

이 명령문을 둘러싼 반복문의 다음 반복으로 즉시 제어를 전달

 

for문에서 continue문

 

https://www.youtube.com/watch?v=QunYrLC-GBM&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=26

 

https://www.youtube.com/watch?v=QunYrLC-GBM&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=26

 

 

while문에서 continue문

후위 연산자를 잘 보자

 

 

switch문에서 continue문

'Study > C#' 카테고리의 다른 글

[C#] 메서드 매개 변수  (0) 2024.05.28
[C#] 메서드 정의 및 호출  (0) 2024.05.28
[C#] break  (0) 2024.05.27
[C#] 반복문 while문  (0) 2024.05.27
[C#] 반복문 for문  (0) 2024.05.27

break문

 

배치된 시점에서

가장 가까운 바깥쪽 루프 또는 switch 문을 종료

제어는 종료된 문 뒤의 문으로 전달됨(있는 경우)

 

 

for문에서 break;문

https://www.youtube.com/watch?v=3IbXxS6cu6M&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=25

 

이중 for문에서 break문

https://www.youtube.com/watch?v=3IbXxS6cu6M&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=25

 

https://www.youtube.com/watch?v=3IbXxS6cu6M&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=25

 

 

while문에서 break문

 

https://www.youtube.com/watch?v=3IbXxS6cu6M&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=25

 

switch문에서 break문

 

https://www.youtube.com/watch?v=3IbXxS6cu6M&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=25

'Study > C#' 카테고리의 다른 글

[C#] 메서드 정의 및 호출  (0) 2024.05.28
[C#] Continue문  (0) 2024.05.27
[C#] 반복문 while문  (0) 2024.05.27
[C#] 반복문 for문  (0) 2024.05.27
[C#] 선택문 switch  (0) 2024.05.27

while문?

지정된 부울 식이 true로 계산되는 동안 문또는 문 블록을 실행

 

루프를 실행하기 전에 부울 식이 평가되기 때문에

while 루프는 0번 이상 실행된다.

 

 

문법(syntax)

while(부울 식)

{

}

 

 

※for문 과 비슷하게 부울 식이 참인지 확인 후 블록을 실행하는 검토방식 반복

 부울 식이 false이면 반복 종료

 

https://www.youtube.com/watch?v=qhKokHzgTjE&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=24

'Study > C#' 카테고리의 다른 글

[C#] Continue문  (0) 2024.05.27
[C#] break  (0) 2024.05.27
[C#] 반복문 for문  (0) 2024.05.27
[C#] 선택문 switch  (0) 2024.05.27
[C#] 선택문 if문  (0) 2024.05.27

반복문?

 

다음 명령문은 명령문 또는 명령문 블록을 반복적으로 실행

 

for문

지정된 부울 식이 true로 계산되는 동안 문 도는 블록 실행

 

문법

 

for(초기화; 조건; 반복자)

{

}

 

초기화?

루프로 유입되기 전에 한 번만 실행되는 초기화 섹션

선언된 변수는 for문 외부에서  접근할 수 없다.

 

조건?

루프의 다음 반복을 실행할지 여부를 결정

결과가 true이거나 없으면 다음 반복이 실행되고, false면 루프 종료

조건 섹션은 부울 식이어야 한다.

 

반복자?

루프의 본문을 실행할 때마다 수행되는 작업을 정의

반복자 섹션에는 세미클론(;)이 없다.

 

https://www.youtube.com/watch?v=b5TRuFKlNKk&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=23

 

 

 

'Study > C#' 카테고리의 다른 글

[C#] break  (0) 2024.05.27
[C#] 반복문 while문  (0) 2024.05.27
[C#] 선택문 switch  (0) 2024.05.27
[C#] 선택문 if문  (0) 2024.05.27
[C#] 논리 연산  (0) 2024.05.26

switch문?

 

지정된 일치 표현식을 기반으로 조건 중 하나의 코드를 실행

 

 

https://www.youtube.com/watch?v=1PJ3d3vYm64&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=22

 

레이블이란?

 

레이블(Label)은 프로그래밍에서 특정 코드 블록의 위치를 가리키는 이름

이것은 보통 제어문(조건문, 반복문 등) 내에서 사용되며,

해당 위치로 프로그램의 실행을 이동시키는 데 사용된다

 

switch문은 하나 이상의 case 블록 및 기본 블록과 쌍을 이룬다.

https://www.youtube.com/watch?v=1PJ3d3vYm64&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=22

 

일치 표현식 값과 일치하는 값에 대해 case 코드 블록이 실행된다.

 

(즉 , 표현식 값이 case 값과 일치하지 않으면 기본 옵션 코드가 실행된다.)

 

옵션이 여러 개 있을 때 if-else 문 대신 사용 가능

switch 를 사용하면 코드가 깨끗하고 읽기 쉬워 질 수 있다.

https://www.youtube.com/watch?v=1PJ3d3vYm64&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=22

 

break 문은 switch 문을 종료

 

https://www.youtube.com/watch?v=1PJ3d3vYm64&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=22
https://www.youtube.com/watch?v=1PJ3d3vYm64&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=22

 

 

문득 열거형에 대해 다시 생각해보게 되었다.



https://www.youtube.com/watch?v=1PJ3d3vYm64&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=22

'Study > C#' 카테고리의 다른 글

[C#] 반복문 while문  (0) 2024.05.27
[C#] 반복문 for문  (0) 2024.05.27
[C#] 선택문 if문  (0) 2024.05.27
[C#] 논리 연산  (0) 2024.05.26
[C#] 비교 연산  (0) 2024.05.26

+ Recent posts