오늘은 공휴일!! 이라서 그냥 쉬고 싶었는데
뭔가 3주차 애매하게 강의 하나만 들은게 걸리적거려서
그냥 강의만 오늘 다 듣고 과제는 내일 하는걸루~~~ 히히
// 부모 클래스
public class Animal
{
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 void Bark()
{
Console.WriteLine("Dog is bark");
}
}
public class Cat : Animal
{
public void Meow()
{
Console.WriteLine("Cat is meow.");
}
public void Sleep()
{
Console.WriteLine("Cat Sleep!");
}
}
static void Main(string[] args)
{
Dog dog = new Dog();
dog.Name = "Potato";
dog.Age = 3;
dog.Eat();
dog.Sleep();
dog.Bark();
Cat cat = new Cat();
cat.Name = "Tomato";
cat.Age = 5;
cat.Eat();
cat.Sleep();
cat.Meow();
}
Animal is eating
Animal is sleeping
Dog is bark
Animal is eating
Cat Sleep!
Cat is meow.
public class Unit
{
public void Move()
{
Console.WriteLine("두 발로 걷기");
}
public void Attack()
{
Console.WriteLine("Unit 공격");
}
}
public class Marine : Unit
{
}
public class Zergling : Unit
{
public void Move()
{
Console.WriteLine("네 발로 걷기");
}
}
static void Main(string[] args)
{
Marine marine = new Marine();
marine.Move();
marine.Attack();
Zergling zergling = new Zergling();
zergling.Move();
zergling.Attack();
}
두 발로 걷기
Unit 공격
네 발로 걷기
Unit 공격
static void Main(string[] args)
{
// Unit : 참조의 형태
// Marine, Zergling : 실제 형태
List<Unit> list = new List<Unit>();
list.Add(new Marine());
list.Add(new Zergling());
foreach (Unit unit in list)
{
unit.Move();
}
}
두 발로 걷기
두 발로 걷기
public class Unit
{
public virtual void Move()
{
Console.WriteLine("두 발로 걷기");
}
...
}
public class Zergling : Unit
{
public override void Move()
{
Console.WriteLine("네 발로 걷기");
}
}
두 발로 걷기
네 발로 걷기
abstract class Shape
{
public abstract void Draw();
}
class Circle : Shape
{
public override void Draw()
{
Console.WriteLine("Drawing Circle");
}
}
class Square : Shape
{
public override void Draw()
{
Console.WriteLine("Drawing Square");
}
}
class Triangle : Shape
{
public override void Draw()
{
Console.WriteLine("Drawing Triangle");
}
}
static void Main(string[] args)
{
// Shape shape = new Shape(); -> 객체화 불가능
List<Shape> list = new List<Shape>();
list.Add(new Circle());
list.Add(new Square());
list.Add(new Triangle());
foreach (Shape shape in list)
{
// Draw는 abstract이므로 무조건 재정의가 되어있음 -> 자식 클래스 방문
shape.Draw();
}
}
Drawing Circle
Drawing Square
Drawing Triangle
class Stack<T>
{
private T[] elements;
private int top;
public Stack()
{
elements = new T[100];
top = 0;
}
public void Push(T item)
{
elements[top++] = item;
}
public T Pop()
{
return elements[--top];
}
}
static void Main(string[] args)
{
Stack<int> intStack = new Stack<int>();
intStack.Push(1);
intStack.Push(2);
intStack.Push(3);
Console.WriteLine(intStack.Pop());
}
class Pair<T1, T2>
{
public T1 First { get; set; }
public T2 Second { get; set; }
public Pair(T1 first, T2 second)
{
First = first;
Second = second;
}
public void Display()
{
Console.WriteLine($"First: {First}, Second: {Second}");
}
}
Pair<int, string> pair1 = new Pair<int, string>(1, "One");
pair1.Display();
Pair<double, bool> pair2 = new Pair<double, bool>(3.14, true);
pair2.Display();
First: 1, Second: One
First: 3.14, Second: True
// out 키워드 예시
static void Divide(int a, int b, out int quotient, out int remainder)
{
quotient = a / b;
remainder = a % b;
}
// ref 키워드 예시
static void Swap(ref int a, ref int b)
{
int temp = a;
a = b;
b= temp;
}
static void Main(string[] args)
{
int quotient, remainder;
Divide(7, 3, out quotient, out remainder);
Console.WriteLine($"{quotient}, {remainder}");
int x = 1, y = 3;
Swap(ref x, ref y);
Console.WriteLine($"{x}, {y}");
}
깃허브에 업로드한 md 파일 보기좋게 정리 좀 하고 마무리 해야겠당
오늘 공부는 여기까지
끗~