Java 스터디 5일차

프로그래밍/Java

2018. 10. 19. 20:13

반응형

※이 글은 2018/08/05 ~ 2018/08/27일까지 했던 자바 스터디 노트를 올려놓은 겁니다. ※
05-1 객체 지향 프로그래밍과 클래스
객체와 객체 지향 프로그래밍
객체란 어떤 행동을 나타내는 단어입니다.
객체 지향 프로그래밍이란  객체를 기반으로 하는 프로그램입니다.
 
클래스란?
객체의 속성과 기능을 코드로 구현한 .
 
학생 클래스

package classpart; public class Student { int StudentID; String studentName; int grade; String address; }

 코드를 보면,
클래스를 만들 때는 class 예약어를 사용하고,
클래스 이름은 Student라고 정했다.
{ } 안에는 클래스 내용을 구현한다.

클래스 이름 짓는 규칙
클래스 이름은 대문자로 시작합니다.
소문자로 시작한다고 해서 오류가 발생하는 것은 아니지만,
대문자로 시작하는 것이 개발자들 사이의 규칙입니다.
소셜 컨벤션이 사회적 관습을 뜻하는 것처럼 코딩 동네에서는 이런 규칙을
코딩 컨벤션이라고 합니다.
 
05-2 클래스 살펴보기
클래스 속성을 구현하는 멤버 변수

package classpart; public class Person { String name; int height; double weight; char gender; boolean married; }

클래스 기능을 구현하는 메서드
클래스 내부에서 멤버 변수를 사용하여 클래스 기능을 구현한 것을
'멤버 함수' 또는 '메서드'라고 합니다.
 
학생 이름과 주소 출력하는 메서드 만들기

package classpart; public class Student { int StudentID; String studentName; int grade; String address; public void showStudentInfo() { System.out.println(studentName + "," + address); } }

패키지란?
패키지는 간단히 말하면 클래스 파일의 묶음입니다.
그리고, 패키지는 계층 구조를 가질  있습니다.
 
패키지 선언하기

package classpart; public class Student { }


05-3 메서드
메서드는 함수의  종류입니다.
 
함수란?
함수란 '하나의 기능을 수행하는 일련의 코드' 말합니다.
 
함수의 입력과 반환
함수는 이름이 있고 입력 값과 결과 값을 갖습니다.
함수에 이름을 붙일 때는 의미를   있는 단어를 사용하는 것이 좋습니다.
 
함수 정의하기

int add (int num1, int num2) { int result; result = num1 + num2; return result; }


함수 이름 add
함수 이름은 변수 이름처럼 프로그래머가 임의로 만들게 되는데,
위에서 말했듯ㅇ이 함수 기능과 관련 있게 만들어야 나중에 호출하거나 이해하기 편합니다.
 
매개변수 num1, num2
함수 내부에서 사용할 괄호 안의 변수를 매개변수라고 합니다.
(매개변수가 필요 없는 함수도 존재합니다.)
 
return 예약어와 반환형
add( ) 함수를 수행한  결과 값은 변수 result 저장됩니다.
result 저장된 결과 값은 함수를 호출했을  반환되는 값이므로 '반환 '이라고도 부릅니다.
' 함수의 결과 값을 반환합니다'를 뜻하는 예약어가 바로 return입니다.
 
함수 호출하고  반환하기

package chapter2; public class chapter2 { public static void main(String[ ] args) { int num1 = 10; int num2 = 20; int sum = add(num1, num2); System.out.println(num1 + " + " + num2 + " = " + sum + "입니다."); } public static int add(int n1, int n2) { int result = n1 + n2; return result; } }

매개변수 살펴보기
프로그래밍을 처음 공부하는 사람들은 함수를 호출할  넘겨주는 변수 이름과 함수를 구현할 
사용한 매개변수 이름이 같아야 한다고 생각할  있습니다. 그런데  둘은 전혀 상관이 없습니다.

함수 호출과 스택 메모리
함수를 호출하면  함수만을 위한 메모리 공간이 할당됩니다.
 메모리 공간을 스택이라고 부릅니다.
 
스택은 아래에서 위로 생성이 됩니다.
A -> B -> C 순서로 생성이 된다면
C -> B -> A 순서로 소멸됩니다.
 
함수 내부에서만 사용하는 변수를 지역 변수라고 합니다.
지역 변수는 스택 메모리에 생성됩니다.
 
함수의 장점
1. 함수를 사용하면 기능을 나누어 코드를 효율적으로 구현할  있습니다.
2. 기능별로 함수를 구현해 놓으면 같은 기능을 매번 코드로 만들지 않고  기능의 함수를 호출하면 된다.
3. 프로그램을 실행할  생긴 오류를 수정하는 디버깅 작업을  때도 편리합니다.
 
하나의 함수에 하나의 기능 구현하기
함수는 하나의 기능을 구현하는 것이 중요합니다.
여러 기능이 섞여 있으면 앞에서 말한 장점을 살릴  없기 때문입니다.
 
클래스 기능을 구현하는 메서드
학생 이름을 반환하는 메서드

package chapter2; public class chapter2 { int studentID; String studentName; int grade; String address; public String getStudentName( ) { return studentName; } } }

메서드 이름은 해당 클래스를 사용하는 코드의 입장에서 짓는 것이 좋습니다.
 
자바의 이름 짓기 규약
자바에는 이름 짓기 규약이 딱히 있지는 않지만,
앞에서 이야기했듯이 클래스 이름은 대문자로 시작합니다.
 
변수와 메서드 이름은 소문자로 시작하며, 이름이 길어지는 경유에는
중간에  단어로 바뀔 때마다 대문자로  줍니다.
 표기법을 낙타 표기법이라고 합니다.


반응형

'프로그래밍 > Java' 카테고리의 다른 글

Java 스터디 6일차  (0) 2018.10.21
Java 스터디 4일차  (0) 2018.10.17
Java 스터디 3일차  (0) 2018.10.17
Java 스터디 2일차  (0) 2018.10.14
Java 스터디 1일차  (0) 2018.10.14