반응형
SMALL
//new라는 연산자를 사용해 인스턴스를 생성한다.
//사용자 정의타입(형식)이다.
//참조형식
//개체,객체,인스턴스 = 다 같은말
//1. 클래스 정의
//2. new 연산자를 통해(개체,객체,인스턴스) 생성
//메모리가 할당된다 = 마치 변수처럼 (공간이 생긴다) = 값이 저장된다.
//3. 인스턴스의 타입은 클래스다.
//new 연산자를 통해 -> 인스턴스 = 값
using System;
namespace Study03
{
class Program
{
static void Main(string[] args)
{
App app = new App(); // 인스턴스가 만들어졌다 (개체, 객체) = 값
//App클래스의 인스턴스 값이다.
Console.WriteLine(app); // = App 클래스의 인스턴스 값.
}
}
}
//new 라는 키워드가 하는 일
//1. 클래스의 인스턴스를 생성한다.
//2. 클래스의 생성자를 호출한다.
//new 키워드로 클래스의 인스턴스를 생성할때 해당클래스의 생성자가 호출된다
//해당 클래스의 이름과 동일한 특별한 메서드다.
//매서드 반환 형식
//void ,반환타입 매서드명()
---class program--
using System;
namespace Study03
{
class Program
{
static void Main(string[] args)
{
App app = new App(100); // 인스턴스가 만들어졌다 (개체, 객체) = 값
//App클래스의 인스턴스 값이다.
Console.WriteLine(app); // = App 클래스의 인스턴스 값.
app.hp = 10; //App클래스의 인스턴스의 멤버변수 hp
Console.WriteLine(app.hp);
}
}
}
---class App---
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Study03
{
//클래스 정의
class App
{
//맴버변수
public int hp; // 암것도 안적으면 기본 프라이베이트
public int hp1;
//생성자 메서드
public App(int hp) //생성자 메서드도 매게변수를 가질수 있다
{
Console.WriteLine("App클래스의 생성자 호출됨");
Console.WriteLine("{0}", hp);
// . = member access operator
Console.WriteLine(this.hp);
this.SayHello(); // 컴파일 할때 this는 자동으로 붙여줌
//hp 생성자 매서드 매게 변수 값을 맴버변수로 저장하려면?
this.hp = hp;
}
void SayHello()
{
}
}
}
using System;
namespace Study03
{
class Program
{
static void Main(string[] args)
{
App app = new App(100); // 인스턴스가 만들어졌다 (개체, 객체) = 값
//App클래스의 인스턴스 값이다.
Console.WriteLine(app); // = App 클래스의 인스턴스 값.
app.hp = 10; //App클래스의 인스턴스의 멤버변수 hp
Console.WriteLine(app.hp);
//그럼 클래스는 왜 쓰는가?
//클래스 = 사용자 정의 타입이라고 밖에 설명못함.
//파일은 늘어나지만 코드는 단순해지고 유지보수가 편해짐 = class 를 쓰는 이유중 하나 (재사용 목적도 있음)
// 클래스
// 이름 :
// 속성 : 체력 공격력
// 기능 : 공격하다. 이동하다 등등
//위에 맞게 이름을 짓는 게 중요!!!.
}
}
}
반응형
LIST