본문 바로가기

JAVA

[JAVA] 기초문법 - 클래스와 객체1(1)

객체 지향프로그래밍과 클래스

객체란?

"의사나 해우이가 미치는 대상"ㅡ사전적 의미

구체적, 추상적 데이터 단위

객체지향 프로그래밍(OPP)

객체를 기반으로 하는 프로그래밍

cf. 절차 프로그래밍(ex, C언어)

EX) 시간에 흐름에 따른 프로그래밍(순차적 프로그래밍)

학교에가는 절차

1. 일어난다

2.밥을 먹는다

3. 씻는다.

4. 옷을 입는다.

5.버스를 탄다.

6. 요금은 낸다.

7. 학교에 도착한다.

EX) 객체지향에 따른 프로그래밍(객체지향 프로그래밍)

객체1ㅡ학생

객체2ㅡ밥

객체1과 2의 관계

객체1이 밥을 먹으면 객체2의 양이 줄어듬

객체3-버스

객체1과 3의 관계

객체1이 버스를 타면, 요금을 내고, 버스는 수입증가, 버스는 학생을 목적지까지 데려다줌, 버스는 승객이 증가 등등

객체 끼리 협력에 따른 프로그래밍ㅡ객체지향 프로그래밍

현실은 객체로 이루어져 있기 때문에 절차지향프로그래밍보다 현실적이다.

객체지향 프로그래밍 방법

1. 객체를 정의

2. 객체의 기능 구현

3. 객체 사이의 협력 구현

클래스(CLASS)

클래스란?

객체에 대한 속성과 긴으을 코드로 구현 한 것

"클래스를 정의 한다"라고 함

객체에 대한 청사진(blueprint)

객체의 속성

1.객체의 특성, 속성, 멤버변수

2.property, attribute, member variable

객체의 기능

1.객체가 하는 기능들을 메서드로 구현

2.method, member function

클래스 정의하기

(접근 제어자) class 클래스 이름{

멤버변수;

메서드;

}

학생 클래스의 예

속성(멤버변수): 학번, 이름, 학년, 사는 곳 등등...

기능(메서드): 수강신청, 수업듣기, 시험보기 등등...

class는 대부분 대문자로 시작

하나의 java 파일에 하나의 클래스를 두는 것이 원칙이나, 여러 개의 클래스가 같이 있는 경우 public 클래스는 단 하나이며, public 클래스와 자바 파일의 이름은 동일 해야한다.

자바의 모든 코드는 class 내부에 위치한다.

public class Student {

int studentID;

String studentName;//String은 자바가 제공해주는 문자열 클래스

int grade;

String address;

public void showStudentInfor() {

System.out.println(studentName+","+address);

}

public static void main(String[] args) {//메인함수 student클래스의 함수가 아님. jvm이 호출해주는 함수. 프로그래밍의 시작점.

Student studentLee= new Student();//객체 생성(인스턴스 생성)

studentLee.studentName="이순신";//멤버변수 초기화

studentLee.address="서울시 서초구 서초동";//멤버변수 초기화

studentLee.showStudentInfor();//인스턴스 함수 호출

}

}

메인함수가 항상 같은 .java파일에 있는것이 아닌, 다른 .java파일에서 클래스를 호출해서 쓰는 것이 대부분이다.

이름 규칙

패키지 이름: 소문자로 작성ㅡstudent

클래스 이름: 대문자로 시작해서 단어가 바뀔때마다 대문자 ㅡ StudentID

변수이름: 소문자로 시작해서 단어가 바뀔때마다 대문자ㅡstudentID

메서드이름: 소문자로 시작해서 단어가 바뀔때마다 대문자ㅡshowStudentInfor

패키지ㅡ소스의 묶음(소스의 계층 구조)ㅡ실제로 디렉토리로 만들어짐. 유지보수를 위해 패키지로 계층구조를 잘 만드는 것이 중요.

a패키지의 B.java파일에 이름은 실제로 a.B

b패키지의 B.java파일에 이름은 실제로 b.B

패키지는 같음 이름의 클래스를 구별해주는 기능도 한다.