java

쉽지만 어려운 #Java #자바 #성공적1.객체값 다른 객체에서 자유롭게 사용하기

sieunju 2016. 4. 3. 15:15
반응형

안녕하세요 J.sieun 입니다. 


요번에 배우실 객체 안에 있는 데이터 값을 특정 클래스로 옮기고 싶


은데 과연 될까??


정답은 당연히 됩니다. 


방법은 여러가지가 있습니다. 하지만 오늘 배우실 것은 가장 기본적인것을 알려드리려고 


합니다. :D


우선 저번에 제가 올린 소스그대로 적어두겠습니다. 




public class FirstClass {

static String str;

public static void TestMethod (){

System.out.println("TestClass OKK");

String str = "하하";

System.out.println(str);

return;

}

public static void main(String[] args) {

// TODO Auto-generated method stub

System.out.println("쉽지만 어려운 자바");

System.out.println(str);

}

}


그리고 같은 패키지 안에 FirstClass2.java 파일을 만듭니다. 


만든 후 


public class FirstClass2 {


public static void main(String[] args) {

// TODO Auto-generated method stub

FirstClass Test = new FirstClass();

Test.main(args);

Test.TestMethod();

}


}


이렇게 적습니다. 적은후, 실행을 해봅니다. 결과값은 아래와 같이 나옵니다.


쉽지만 어려운 자바

TestClass OKK

하하

TestClass OKK

하하


결과값을 보시면 아시겠지만 값이 2번 출력된 부분이 있습니다. 


왜 이러한 결과값이 나오게 되었냐면 


제가 FirstClass2 클래스 안에 FirstClass Test = new FirstClass();


라고 코딩한 부분이 있습니다. 


해석하자면 FirstClass 의 객체를 소환 한다! 라는 뜻입니다. (유의 : Test 이건 그냥 아무렇게나 지으셔도 됩니다. 편의상 Test라고 적었습니다. )


이렇게 객체를 소환하고나서 FirstClass 라는 객체에 있는 메소드 중 FirstClass2 객체에서 사용하고 싶은 값들을 가져와야 할때에는 쉽게 


FirstClass ???? = new FirstClass();


에서 ????.내가 가져오고싶은 메소드 ; 를 하시면 됩니다.  즉, Test.main(args); 를 하게 되면 FIrstClass 안에 있는 메인메소드를 가져오는 거고, Test.TestMethod(); 하게 되면 


TestMethod 라는 메소드의 값을 가져오게 되는겁니다. 


이것을 자유롭게 사용할줄 알면 나중에 큰 프로젝트 프로그램 개발 , Socket 또는 DB를 사용하지 않고 잠깐 저장했다가 사용하는 "직렬화"에 대해서도 문제 없이 하게 됩니다. 


그리고 이것을 가지고 좀더 응용을 할수 있습니다. 음..예를 들면 한클래스 안에 한꺼번에 모든 기능들을 하는 것보단 여러 군데로 나눠서 코딩을 한다음 한클래스에만 메인 메소드(함수) 코딩하여 좀더 알아보기 쉽고 빠르게 처리 할수도 있습니다. 



※궁금하신거 댓글달아주시길 바랍니다. ㅎㅎ


퍼가시는건 상관 없는데 말은 하고 퍼가주시길 바랍니다.^^※



반응형