Programming/Java

[ JAVA 스터디 ] 2회차 복습 - 221106

감귤밭호지차 2022. 11. 11. 11:26

[스터디 진행 사항 ]

스터디 진행 날짜 : 22년 11월 06일 

스터디 진행 장소 : 노원 랭스터디

스터디 진행 시간 : 오후 12시 ~ 오수 2시 (2시간)


[학습 내용 ]

오늘 스터디는 간단하게 반복문을 훝고 객체 지향 1 파트를 들어갔다. 

 

#객체 : " 것 " anything → 규모가 커지고 대 단위로 프로젝터가 진행이 되면서 객체 간 상효작용하는 방식이 더 편리해짐

 

#Class : 붕어빵 틀 / 설정집 

                Class를 기반으로 객체를 만드는데 이때의 Class는 객체의 속성(변수) 와 기능(함수)를 미리 저장해두고 나중에 필요할 때,

                호출해서 사용하는 일종의 "설정집"

 

# method : 멤버 함수 

                       void 일때는 함수 {} 블록 안에서만 사용 가능하며 주로 return이 없거나 반환 값이 없을 때 void 적용 

 

* return : 호출한 곳에서 다시 쓸지 안 쓸지에 따라 함수 안에 넣을 수도 안 넣을 수도 있다. 참고로 void 의 경우 reutrn 값은 

함수 수행 종료를 의미하기도 한다. 

* 만약 반복문 if - else 문 같은 것을 쓸 경우 각 블록 {} 안에 return  입력 해주어야 오류가 나지 않는다. 

 

# 패키지 : 분류 작업을 위한 용도 

 

# 메모리 : Java는 메모리 함수 종료시 알아서 없어지는 유용한 프로그램이다. : Gabage Collector 

 

Class로 만든 변수는 new 연산자를 꼭 생성 필요 

: new 연산자를 사용함으로써 변수가 메모리에 올라가서 쌓이게 됨. (메모리에 올라감으로써 이때부터 의미가 있어지는 것)

** 참고로 컴퓨터의 메모리 구조 설명 해보라는 것이 면접의 단 골 질문 

 

[메모리 구조]

stack Heap

 

#생성자 : 

Person    person  = new Person( );

class 형      참조                생성자

 

참조 person은 하나의 객체를 만들 때마다 다 적기 힘드니까 class 내부에 초기화 해주는 공간을 만들자 해서 생성자가 탄생 한 것 

 

public Person ( ) { } : 기본 생성자 생성 이유 

추가 객체를 만들 수도, 비워둘 수도 있는데 이를 위해 미리 초기화를 해두는 것이다. 혹은 (A, B, C) 중 A만 출력하고 싶을 때 사용 

 

코드를 짠 후 실행할 경우 이동하는 과정은 다음 과 같다.

main → 생성자 → main 속 함수 → 해당 관련 생성자 

* 이는 debug를 통해 코딩의 흐름을 알 수 있었다. 

 

# 오버로딩 : Java의 특징 중 하나로 같은 함수여도 안에 든 Parameter(매게 변수) 가 다르면 다른 함수로 인식 한다는 것이다. 

( 오버로딩 ≠ 오버라이딩)

* parameter (매게 변수)  : num1 과 num2  -   함수의 정의에서 전달받은 인수를 함수 내부로 전달하기 위해 사용하는 변수 

   int add( int num1, int num2) {

         int result = num1 + num2

         return result;

  }

 

[ tip ]

Alt + CTRL + L : 코드 정리 

Shift + F6 : Class 이름을 전체 바꿀 수 있는 단축키

 


[다음 스터디 준비 필요사항 ]

1. 클래스와 객체 2 

2. 예제 다 풀어오기 

3. getter & Setter 사용 이유?? 

https://thalals.tistory.com/279