본문 바로가기
전공수업/JAVA

객체지향?

by Alkaloid 2018. 7. 21.
반응형


package week2;


import java.util.*;

public class Pro {


public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

int num = sc.nextInt();

Pro pro = new Pro(); //클레스를 이용하여 객체생성

pro.Pro(num); // 객체의 메소드를 호출(호출부)

}

public void Pro(int n) { //메소드생성

for(int i=1;i<10;i++)

System.out.println(n+"*"+i+"="+(n*i));

}

}


  • Java에서 [메소드]란

C언어에서 [함수]와 비슷한 개념이다.  -> 로직만 있으면 된다.

   데이터를 메소드에 넣어주면 결과값을 return 해준다.


public void Pro(int n) 


return 값이 없을 경우 void를 사용하면 되고, 정수형으로 return 하려면 int등, 자신이 원하는 자료형을 써주면된다.

(int n) -> 매개변수로 전하고싶은 데이터가 없으면 빈괄호()만 써줘도된다.

매개변수는 두개가 될수도 있고, 세개가 될수도 있다.  EX. (int i, String a, double d) -> 가능하다.



객체란 ?

같은 종류인 [데이터]와 [로직]이 함께있는 구성체  -> 독립체.

☞ 자동차에서 운전대, 브레이크,기어 등 - 메소드(모든차가 공통적으로 가지고있다.)

                   색상, 배기량 - 데이터(차마다 다르다. 즉, 구분이 된다.)




객체는 메소드의 상위개념이다.


객체는 클래스로 부터 생산(복사본)이 된다.


클래스를 복사한 <객체1> <객체2> <객체3>은 서로 관계가 없는 객체이고, 다른 데이터를 가지고있다.



기초자료형 : 직접적인 데이터가 들어간다.  -> int i=10;

정수형(int) 변수(i)에는 10이라는 데이터가 직접적으로 들어간다.

객체자료형 : 객체의 주소값이 변수에 들어간다.  -> ClassName classname = new ClassName();

처음 ClassName은 자신이 만든 class이름이고, 그다음 나오는 classname(객체 변수)은 자신이 변수이름을 짓는것처럼 개발자가 지정할수있다. 그다음 new는 생성자라고 하는데, 이것이 클래스를 복사하는것이다. 그 뒤에 ClassName();이 이것을 복사한다라고 생각하면 될것이다.



*배열 변수와 객체 변수의 공통점은 주소값이 변수에 들어간다. <- 래퍼런스 변수




객체 안에 종속되어 있는 데이터는 완전히 별개의 데이터다.



→ object1 i

Class 

  int i

 ↘ object2 i


위에 object1에 i와 object2의 i는 서로 다른 i(데이터)이다.

반응형