메서드
int Add(int a, int b)
{
return a + b;
}
반환형식 메서드 명(매개변수)
{
// 명령
(return 반환값)
}
Add(1, 2) ; 3
메서드 명(매개변수)
Call By Reference(Ref, Out 키워드)
void Swap(ref int a, ref int b)
{
int temp = a;
a = b;
b = temp;
}
변수, 기본적인 메서드
Main() 메서드
클래스
using System;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("나이를 입력해주세요.")
int age = int.Parse(Console.ReadLine());
Console.WriteLine(age);
}
}
- 절차지향 프로그래밍 -
엔진 -> 핸들 -> 차체 -> 의자 -> 바퀴
A라는 자동차 만들기
B라는 자동차 만들기
기본 엔진을 사용해서 엔진 만들기
엔진이라는 것 부터 만들기
엔진 -> 차체 -> 핸들 -> 의자 -> 바퀴
엔진 -> 핸들 -> 차체 -> 의자 -> 바퀴
엔진 -> 차체 -> 핸들 -> 의자 -> 바퀴
순차적인 처리가 중요시 되며
프로그램 전체가 유기적으로 연결되도록 만드는 프로그래밍 기법
예) 자판기 프로그램
돈을 받는다
버튼이 눌려질때까지 대기
버튼이 눌린 가격과 돈을 비교
돈이 된다면 음료수 내보내기
A 기능
B 기능
C 기능
A 기능
B` 기능
C 기능
A 기능
B 기능
C 기능
핸들
바퀴
의자
자동차
붉은 자동차
노란 자동차
검은색 자동차
전반적인 자동차 설계도
의사나 행위가
미치는 대상
객체
전체나 집단에 상대하여
하나하나의 낱개
개체
Object
물건
객체
붉은 자동차(객체)
노란 자동차(객체)
검은색 자동차(객체)
전반적인 자동차 설계도
항상 어떤 문제를 해결하는데 있어서
설계도(class)의 개체를 만들어 사용한다.
자판기(설계도로 객체 만듦)
돈을 받는다(기능; 메서드)
버튼이 눌려질때까지 대기(기능; 메서드)
버튼이 눌린 가격과 돈을 비교(기능; 메서드)
돈이 된다면 음료수 내보내기(기능; 메서드)
상향식
class Program
{
static void Main(string[] args)
{
Car redCar = new Car("빨강");
redCar.PrintColor();
}
}
class Car
{
private string color;
public Car(string _color)
{
color = _color;
}
public void PrintColor()
{
Console.WriteLine(color);
}
}
class Car
{
private string color;
public Car(string _color)
{
color = _color;
}
public void PrintColor()
{
Console.WriteLine(color);
}
}
class [클래스 명]
{
//클래스의 필드(변수) 및 메서드(함수)
}
class Car
{
변수 color
메서드 PrintColor
}
private string color;
public void PrintColor()....
[접근제한자] [자료형] [변수이름];
[접근제한자] [반환형] [메서드명]([매개변수]){
//명령
}
public
클래스 내, 외부에서 접근 가능
private
클래스 내부에서만 접근 가능
class Car
{
private string color;
public Car(string _color)
{
color = _color;
}
//....
}
public [클래스 이름]([매개변수])
{
//명령
}
개체가 생성되면서 필요한
변수 초기화 및 기능 실행부
(특수한 메서드)
생략 가능
public void ChangeColor(string _color)
{
color = _color;
}
public void ChangeColor(string color)
{
this.color = color;
}
1. 매개변수 이름 바꾸기
2. this키워드 사용하기
public void ChangeColor(string color)
{
color = color; // ???
}
메서드 내에서는 매개변수인 color가 우선순위 더 높음
[클래스 명] [객체 명] = new [클래스 명]([생성자 매개변수])
Car redCar = new Car("빨강")
public Car(string color)
{
this.color = color;
}
class Program
{
static void Main(string[] args)
{
Car redCar = new Car("빨강");
redCar.PrintColor();
}
}
class Car
{
private string color;
public Car(string _color)
{
color = _color;
}
public void PrintColor()
{
Console.WriteLine(color);
}
}
필드
변수 : 나이, 이름
메서드: 17 ~ 19살이면 고등학생이라고 출력하는 기능
만들어야하는 객체: 자유
개체가 소멸되면서 필요한 기능 실행부
(특수한 메서드)
~[클래스 이름]()
{
//명령
}
free, delete로 직접 객체 제거
가비지 컬렉터라는 클래스가 객체를 제거
따라서 객체 소멸이 되는 순간을 모름
객체(레퍼런스 형)은 사용 후 제거 해야 됨.
=> 힙이라는 저장 공간 특성