객체 지향 프로그래밍 OOP : Object-Oriented Programming
객체를 하나씩 조립해서 완성된 프로그램을 만드는 기법
객체, 속성, 동작을 조립해서 사용한다.
● 객체: ex) person 객체 person.java , person.class
● 속성(field) : 정해져있지 않음, 속성안에 속성값을 넣을 수 있다. ex) name 속성
● 동작 (method) : ex) name 속성.run()
-물리적인 객체
ex) 자동차(객체) Car 객체 - Car.java , Car.class
모델명(명사) ( Car 객체 ) - modelName 속성 - Sonata 속성값 , Avante 속성값
달린다(동사) ( Car 객체 ) - run() 메서드 , modelName 속성.run()메서드
-논리적인 객체
게시판 Board 객체
Board.java
Board.class
이름(명사) BoardName 속성
자유게시판 freeBoard 속성값
커뮤니티게시판 communityBoard 속성값
글작성하다(동사) write() 메서드
boardName속성.write() 메서드
자유게시판 글작성하다.
객체 모델링 Object modeling : 현실 세계의 객체를 소프트웨어 객체로 설계하는 것
● 인스턴스 : 클래스로부터 만들어진 객체, 실제 형식으로 구체화된 결과물
ex)
(형태 : 설계도 : 클래스) → 인스턴스 (클래스구체화된 결과물)
person 객체
name 속성 → name: 김희선
age 속성 → age: 30
height 속성 → height : 165
weight 속성 → weight: 45
클래스 선언 : 클래스는 첫글자 꼭 대문자로 쓰기, 한글로 클래스이름을 만드는 경우는 없다.
클래스 선언
1. student 클래스 선언
get : main 변수에 값을 가져감
set: main 변수에 값을 셋팅함
2. studentexaple 실행함수(main) 생성
main 변수에서 클래스로만들어놓은 student를 인스턴스 했다.
.Student 클래스
package chapter06.sec01.exam01;
// 학생(Student) 객체를 생성하기 위하여, Student 클래스를 선언합니다.
// main 함수를 안 넣는다
public class Student {
String name; // 이름속성
int age; // 나이 속성
double height; // 키 속성
double weight; // 몸무게 속성
public String getName() { //getName() 메서드 : 이름을 조회한다.
return name;
}
public void setName(String name) { //setName() 메서드 : 이름을 설정한다.
this.name = name;
}
public int getAge() { //getAge() 메서드 : 나이를 조회한다.
return age;
}
public void setAge(int age) { //setAge() 메서드 : 나이를 설정한다.
this.age = age;
}
public double getHeight() { // getHeight() 메서드 : 키를 조회한다.
return height;
}
public void setHeight(double height) { // setHeight() 메서드 : 키를 설정한다.
this.height = height;
}
public double getWeight() { // getWeight() 메서드 : 몸무게를 조회한다.
return weight;
}
public void setWeight(double weight) { // setWeight() 메서드 : 몸무게를 설정한다.
this.weight = weight;
}
}
StudentExample 실행클래스
package chapter06.sec01.exam01;
// 앞서 선언한 Student 클래스를 활용하는 "실행클래스" 객체 생성을 합니다.
// main 함수는 실행함수이다.
public class StudentExample {
public static void main(String[] args) {
// Student 객체 활용 jangnara 인스턴트 생성
Student jangnara = new Student();
System.out.println("jangnara 변수가 Student 객체를 참조합니다.");
// set - method(설정한다) / set+___ - field(속성값)
jangnara.setName("장나라");
jangnara.setAge(31);
jangnara.setHeight(163);
jangnara.setWeight(63);
System.out.println(jangnara.getName() + "님의 나이는"+ jangnara.getAge() +"세이고, 키는" + jangnara.getWeight() + "kg입니다.");
// Student 객체 활용 kimheesun 인스턴스 생성
Student kimheesun = new Student();
System.out.println("s2 변수가 또 다른 Student 객체를 참조합니다.");
kimheesun.setName("김희선");
kimheesun.setAge(40);
kimheesun.setHeight(158);
kimheesun.setWeight(50);
System.out.println(kimheesun.getName() + "님의 나이는" + kimheesun.getAge() + "세이고, 키는" + kimheesun.getHeight() + "cm입니다. 그리고, 몸무게는" + kimheesun.getWeight() + "kg입니다.");
}
}
클래스의 구성 멤버
구성멤버는 생략되거나 복수의 개수로 작성될 수 있다.
필드(속성): 객체와 함께 존재
생성자: 객체 생성시 초기화를 담당, 객체를 사용할 준비, 제일 먼저 실행되는 메서드, 인스턴스 변수를 초기화하기 때문에 클래스를 선언할 때 바로 실행됨, 생략이 되어있지만 기본적으로 존재한다. ctrl + spacebar를 하면 나타나게됨
메소드(동작): 동작에 해당하는 중괄호 블록, 일괄적으로 실행
'☭DEVELOPER > #2 웹개발(자바기반 풀스택)' 카테고리의 다른 글
[BACKEND]JAVA_ECLIPSE 코딩테스트 3 (2) | 2023.08.24 |
---|---|
[BACKEND]JAVA_ECLIPSE13 필드, 생성자, 메소드 (0) | 2023.08.23 |
[BACKEND]JAVA_코딩테스트02 (0) | 2023.08.23 |
[BACKEND]JAVA_ECLIPSE11 열거 (0) | 2023.08.22 |
[BACKEND]JAVA_ECLIPSE10 배열 (0) | 2023.08.22 |