OOP : 객체지향 프로그램
class 를 이용한 객체지향 프로그래밍이 일반적이다.
정의, 설계도 , 청사진
붕어빵을 만들기 위한 틀 class
틀에서 만들어진 모든 붕어빵이 객체 object
붕어빵 하나하나 instance
설계도에 맞게 만드는 작업을 instance화 한다고 말한다
namespace CuteCat{
public partial class Form1 : Form
{
public Form()
{
InitialzeComponent();
int number = 1;
Sonata myCar = new Sonata();
// myCar가 인스턴스
}
}
class Cat
{
int NumberOfEyes;
string Name;
int Age;
void MakeSound()
{
Console.Write("멍멍"); // 이렇게 메소드를 만들어 줄 수 있다.
}
}
class Sonata
{
string color;
bool hasSunroof;
}
}
namespace CuteCat
{
public class Cat
{
public string name;
public int age;
private int happiness;
//생성자 선언 , public 으로 선언하여 외부에서 호출할 수 있게 한다
public Cat(string name, int age)
{
this.Name = name;
// this 라는 키워드는 Cat 이라는 인스턴스 자체를 가르킨다 즉
//현재 인스턴스화 되고있는 그 자체를 가르킴. 키워드를 통해서 값을 넣어줄수 있다.
Age = age;
}
// 접근제어자를 사용하여 외부에서 접근할 수 없는 메소드를 만들수도 있다
public void play()
{
Happiness = Happiness + 10;
if(Happiness > 100)
Happiness = 100;
}
public void Eat()
{
Happiness = Happiness +20;
if(Happiness > 100)
Happiness = 100;
}
public void GetBored()
{
Happiness = Happiness - 10 ;
if (Happiness <0)
Happiness = 0;
}
public string Express()
{
string message = "";
if(Happiness >= 80)
message = "I'm very happy.";
else if (Happiness >=60)
message = "I'm happy.";
else if(Happiness >=40)
message = "I'm soso.";
else if(Happiness >=20)
message = "I'm gloomy.";
else
message = "I'm sad.";
return Name+ ":" +message.
}
}
}