본문 바로가기
BackEnd/Java

JAVA_실행단위(Class,Method,Void-Return Type)

by telecaster0 2021. 4. 20.

오전에는 실행단위에 대해 공부했다.

class

 ex) public class operator {

field

 -클래스와 생성자 사이에 기재 해준다.

   데이터타입  변수(필드명)

method 

- 생성자 (method와 같은 양식)

  ex)public operator ( parameter ) {  }    =>class를 제외하고 써준다.

- method

   ex)public machine (paratmeter ) {}

 

작업의 큰 단위부터 작은단위로 나열해보자면

class

생성자(method)

method

void

return (출력값을 return)

 

순서이며 생성자는 return값을 갖지 못한다.

 

 

오늘부터 새로 계산기 만드는 실습을 진행하였다.

 

프로그램을 실행하는 Loader classs

입출력을 담당하는 InputOutput class

-> 사용자 입력, 결과값 출력, 사용자 입력값 출력

그리고 마지막으로 연산, 백엔드를 담당하는  Opetare class

 

세가지 클래스로 나누어 실습을 진행했다.

 

일단 백엔드 연산 부분은 덧셈,뺄셈,곱하기,나누기 총 4가지의 기능을 각각의 메소드로 나누었다.

 

객체지향 자바 의 장점을 살리기 위해 메소드당 각 1개의 기능을 만들 것을 강의 받았다.

 

덧셈 method로 예를 들어보면

 

public int plus (num1, num2) {

int result=0;

result = num1 + num2

 

return result;

 

이며

 

public 변수명 (파라미터값)

{변수들

return result;

로 정리 가능하다. 또한 마지막에 나와있듯이 이 method는 return값을 불러오는 method이며

void와는 상반되는 개념인데

void method를 예로 들면 연산 처리 그 자체로 method가 끝나는 것이며

return method는 연산 처리 결과 값을 다시 불러들이는 method다.

 

이런식으로 각 사칙연산에 맞는 method를 4가지 작성하였다.

 

그리고 둘째로 프론트엔드 파트라고 볼 수 있느 입력+출력 class에 대해 정리해보자면

 

일단, class=> filed 선언=>method 로 구성되어진다.

 

다시 프로세스를 살펴보자면

 

1. 사용자의 계산기 입력 및 출력

 

2. void controller method

 

3. void 사용자 입력

 

4. void 사용자 출력

 

의 순으로 코드를 작성하였다.

 

 

1번문항에선

계산기의 (1) title  (2) mainMenu의 String변수를 작성하였는데

title은 말 그대로 계산기 프로그램의 첫 화면이며

mainMenu는 사용자 입력값(첫번째 숫자), 연산 선택값, 사용자입력값(두번째숫자)  까지 만 만들었다.

 

또한 이 두 String변수는 기본적으로 계속 떠있고 쓰임이 많은 화면이기에 그리고 메모리의 효율을 위해

 

Class와 생성자mehotd 사이에 field값을 선언 하였다.

String title;

String mainMenu;

또한 field값을 정해두면 class 내의 모든 method에서 사용 가능하다. 또한 객체의 속성(데이터 타입을 정의);

 

그 뒤 생성자 단계에서

 

title = new string();  이런 식을 작성하게 되는데 이렇게 new를 써줌으로써 title은 새 instance(객체)를 갖게 된다. (생성자 호출)

참고로 생성자와 method의 차이는 생성자는 return값을 갖지 않는다는 점이다.

 

 

 

 

new를 써주면 (new 생성자) 새 인스턴스(객체)를 갖게됨

 

hype에다가 올릴떈 NEW를 써야 할당이 이루어짐

 

 

필드

 

스트링빌더 버퍼 차이점.

버퍼 : 멀티스레드 환경 ok

빌더 : 멀티스레드 환경 no

스트링의 문제[점!, 최적화?

문자열을 중복되게 사용하면 heap메모리에 많은 가비지 메모리가 생겨 쓸데없는 메모리 낭비가 생기게 됨.

 

 

String 객체는 한번생성되면 할당된 메모리가 변하지않음.

 

메모리효율을 따지면 프린트보다 스프링을 이용한.. 프로그램작성이 필요하다.

 

Instance vs Local memory의 차이

Stack, Heap 차이

 

필드선언= 객체의 생성, 데이터타입을 선언

 

그밑에 생성자

메쏘드