10월 27일
1.절차적인 프로그래밍이란?
쭈욱 순서대로 진행되는 프로그래밍
2.객체지향 프로그래밍 장점
(1)코드의 재사용성 높이고,
(2)유지보수가 용이하고,
(3)중복코드제거가 가능하다.
3.객체지향OOP(Object Oriented Programing)의 핵심개념
(1)캡슐화
(2)상속
(3)추상화
(4)다형성
4.클래스란?객체를 정의함, 객체를 생성하는데 사용
클래스는 제품설계도, 객체는 제품
예)클래스는 TV설계도 객체는 TV
4.객체지향 개념은 하드웨어를 소프트웨어화 하면서 발전해나감
5.객체 = 속성(변수)+ 기능(메서드)
6.객체=인스턴스
좀더 큰개념, 일반화된 개념이 ->객체
특정 클래스로부터 생성된 객체 -> 인스턴스
7.객체를 왜 만드나?
객체를 사용하기 위해서
8.객체를 사용한다는건 뭔가?
객체가 가진 속성과 기능을 사용할려고
9.하나의 소스파일에 하나의 클래스만 작성하는것이 보통이다.
10.하나의 소스파일에는 하나의 public 클래스만 존재한다.
11.소스파일의 이름과 클래스이름이 동일해야 실행이 된다.
12.Tv t= new Tv();
Tv t; Tv 타입의 참조변수 t 를 선언하면 스택영역에 참조변수가 선언
t=new Tv(); Tv인스턴스가 힙영역 생성됨
Tv t=new Tv(); = 대입연산자로 참조변수와 Tv인스턴스가 연결됨
13.Tv t1= new Tv();
Tv t2= new Tv();
t2=t1;
t2에 연결되어 있던 객체가 t1이 대입되면서 t2와 연결된 객체는 끊어지고 t1 객체를 가르킴.
연결이 끊어진 t2객체는 쓸모가 없기 때문에 가비지컬렉터가 정리해줌.
14.변수는 하나의 값만 저장이 가능하기 때문에 하나의 변수는 하나의 객체주소값만 저장가능.
2개의 참조변수가 동일한 객체의 주소값을 저장할수 있음.
15.Tv t1= new Tv();
Tv t2= new Tv();
t1과 t2는 다른 객체이다. new로 만든건 같은설계도로 만든 구성이 같지만 다른객체2개임.
16.객체배열 == 침조변수배열
객체배열 만들기
Tv[] trArr = new Tv[3];
객체배열에 각각의 생성된객체 주소 넣어주기
trArr[0] = new Tv();
trArr[1] = new Tv();
trArr[2] = new Tv();
17.클래스
(1)설계도
(2)데이터+함수
(3)사용자정의타입
18.데이터+함수
(1)변수:하나의 데이터를 저장할수 있는 공간
(2)배열:같은종류의 여러 변수를 하나로 저장할수 있는 공간
(3)구조체:서로 관련이 있는 다른종류의 변수를 하나로 저장할수 있는 공간
(4)클래스:데이터(구조체)+함수
서로관련이 있는 다른종류의 변수 묶음과 함수가 합쳐진것!
여기에서 중요한건 서로관련이 있다는것!!!
19.사용자정의타입
원하는 타입을 직접 만들 수 있다.
20.선언위치에 따른 변수의 종류
package Java;
public class Exam6 {
int iv; //인스턴스 변수(클래스영역애 선언됨)
static int cv; //클래스변수(static변수, 공유변수)
void method()
{
int lv=0; //지역변수(메서드영역에 선언된 변수)
}
}
인스턴스변수(iv)는 인스턴스가 만들어 질때 생성됨.
클래스변수(cv)는 클래스가 메모리에 올라갈때 생성됨. 즉 클래스와 함께 자동으로 만들어짐.그래서 객체생성이 필요없어짐.
지역변수(lv)는 메서드가 선언되어 끝날때까지 활동(Scope 범위)
21.클래스변수(cv)와 인스턴스변수(iv)차이
객체의 속성중에 개별적이고 특징적인것(무늬,숫자) iv로 하고,공통적인 속성(카드 폭,속성)은 cv로 함.
class Card{
String kind; //인스턴스 변수
int num; //인스턴스 변수
static int width; //클래스 변수
static int heigth; //클래스 변수
}
22.메서드란?
작업단위로 문장들을 묶어놓은 것
23.메서드와 함수의 차이
메서드는 클래스안에서 사용해야되고, 함수는 클래스에 독립적이다.
그외는 비슷하다.
24.메서드의 장점
(1)코드의 중복을 줄일 수 있다.
(2)코드의 관리가 쉽다.
(3)코드를 재사용 할 수 있다.
(4)코드가 간결해서 이해하기 쉬워짐.
25.메서드의 작성
반복적으로 수행되는 여러 문장을 메서드로 작성
하나의 메서드는 한가지의 기능만 수행하도록 작성 그래야 유지보수도 쉽고 의미있는 작업 단위로 나눠나야 나중에 코드 재사용성도 높아진다.
26.메서드의 결과값은 0개 아니면 1개
결과값이 여러개 일때는 어떻하냐? 배열 형식의 하나의 객체로 묶어서 주면됨.
객체가 뭐냐? 변수여러개를 묶어놓은것 이기 때문에
반환값이 없을때는 void로 타입을 적음.
27.매개변수도 지역변수이다.
28.'매개변수'는 호출할때 주어진값을 메서드에 값을 넘겨줄때 중간다리역할을 한다고 하여 '매개변수'라고 한다.
29.return문
실행중인 메서드를 종료하고 호출한 곳으로 되돌아 간다.
반환타입이 void가 아닌 경우, 반드시 return문 필요.
타입이 맞는 값을 반환하고, 반환된 타입을 담는 변수도 타입이 같아야한다.
int result= mm.add(3,5);
int add(int x, int y){
return x+y;
}