-
006. 클래스명 표기법, BufferedReader, System.in.read/skip() 실습SsY/Class 2023. 2. 17. 01:25728x90
2023.02.01(수)
클래스명 표기법
- 파스칼 표기법
- 언더스코어 표기법
- 캐멀 표기법 (클래스, 메소드, 변수)
- 헝가리언 표기법- 파스칼 표기법(Pascal Notation : Pascal Case)
더보기파스칼 표기법은 첫 글자를 대문자로 구성하며
단어가 합성될 때 마다 각 단어의 첫 글자를 대문자로
표기하는 방식(방법)이다.
ex) class MainTitle class Circle class UserStatus
자바에서는 클래스의 명명 규칙인 첫 글자를 대문자로 한다는 규칙에
캐멀 표기법이 합쳐진 형태이다.- 언더스코어 표기법(Underscore Notation : Uncerscore Case : 밑줄 표기법)
더보기(Uncerscore = Underline)
주로 데이터베이스쪽이나 자바스크립트 쪽에서
지역 변수를 사용할 경우에 언더바를 사용하는
언더스코어 표기법을 사용하기도 한다.
ex) content_name user_data- 캐멀 표기법(Camel Notation : Camel Case : 낙타 표기법)
더보기캐멀 표기법은 두 단어 이상의 변수명을 표기할 때
두 번째 단어부터 첫 글자를 대문자로 표기하는 방법이다.
ex) addData rainbowColor userName
변수의 명명규칙(Naming rule)인 첫 글자를 반드시 소문자로 한다는 규칙과
캐멀 표기법이 합쳐져서 네이밍이 이루어진다.
캐멀 표기법은 자바에서 시작된 것으로
변수명 혹은 클래스명을 작성할 때
단어마다 단어의 첫 글자를 대문자로 표기하는 것이다.
이표기법은 각 단어의 첫 글자를 대문자로 표기외더
마치 낙타의 등처럼 보이기 때문이라는 설이 있지만.. 사실과는 다르다.
- 클래스 이름 // 파스칼
: 맨 앞글자를 대문자로 시작한다
두 번째 오는 의미 있는 단어의 앞 글자도 대문자이다.
ex) public class MyClass{} //(O)
public class Myclass{} //(x)
- 변수 이름 // 캐멀
: 맨 앞 글자를 소문자로 한다.
두 번째 오는 의미 있는 단어의 앞 글자는 대문자이다.
ex) String myName; //(O)
String MyName; //(X)
- 메소드 이름
: 맨 앞 글자를 소문자로 한다.
두 번째로 오는 의미있는 단어의 앞 글자는 대문자이다.
(변수 이름과 동일한 방법)
단, 메소드의 이름은 가급적 동사로 시작한다.
ex) public String createMyName(){} //(O)
public String createmyname(){} //(X)
public String myName(){} // (동사가 아니라 명사이므로 비추천)- 헝가리언 표기법(Hungarian Notation : Hungarian Case)
더보기헝가리언 표기법은 Microsoft사의
Charles Simonyi 프로그래머가 만들었다고 한다.
그가 코딩할 때 습관적으로 즐겨쓰던 접두사 변수 명명 방식이
빌 게이츠의 눈에 띄어 표준화(일반화)된 것이라 한다.
변수를 표기할 때 앞에 접두어로 쉽게 알아볼 수 있도록
표기하였는데, 이를 통해 자료형을 쉽게 알아볼 수 있다는 특징이 있다.
ex) int nNum float fNum
argument of string → argsData Type Prefix Example
------------------------- -------------- ------------------
boolean b bContinue
int n nIndex
short n nNum
char c cFirstInitial
string s(str) sCustomerName(strCustomerName)==> 실제 자바 프로젝트에서 클래스는 파스칼 표기법으로(+캐멀 표기법)
변수나 메소드의 이름은 캐멀 표기법으로 사용하고,
상수화 된 변수일 경우 밑줄 표기법을 사용하며,
간혹 오래된 프로젝트를 유지보수 하다보면
헝가리언 표기법으로 네이밍을 하는 개발자들도 자주 볼 수 있다.
- Test011
// ○ 퀴즈
// 직사각형의 넓이와 둘레를 구하는 프로그램을 구현한다.
// → 가로 : 10, 세로 : 20
// 실행 예)
// 넓이 : xxx
// 둘레 : xxx
// 계속하려면 아무 키나 누르세요...
// ※ 문제 인식 및 분석
// 직사각형의 넓이와 둘레를 구하는 공식
// 넓이 : 가로*세로;
// 둘레 : (가로+세로) * 2;풀이)
더보기public class Test011 { public static void main(String[] args) { // 주요변수 선언 및 초기화 int w = 10 , l= 20; // 직사각형의 가로, 세로 int area, round; // 직사각형의 넓이, 둘레 // 연산 및 처리 area = w * l ; round = (w + l) * 2; // 결과 출력 System.out.printf("넓이 : %d\n", area); System.out.printf("둘레 : %d\n", round); } } // 실행 결과 /* 넓이 : 200 둘레 : 60 계속하려면 아무 키나 누르십시오 . . . */
※ System.out.printf () 사용시 주의 사항
- %c : 문자 / %d : 정수형 / %f : 실수 / %s : 문자열 데이터
잘 구분해서 써야 원하는대로 데이터 출력이 가능
BufferedReader 클래스
(자바의 기본 입출력 파트)- Test012
- 변수와 자료형
- 자바 기본 입출력 : BufferedReader 클래스
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // --------------------------------------- ---------- // BufferedReader br = new BufferedReader() 바이트 입력 값 // 문자 입력을 읽어들이는 장치 ----------------------- // new InputStreamReader() // 바이트 → 문자 번역기
더보기// 클래스 인스턴스 생성구문
- BufferedReader br = new BufferedReader();
// 현실에 존재하지 않은 무언가를 새로 만들기 위해 new를 입력해주고, 끌어올 수 있는 주소를 import로 올려둠
// 기능,동작,행위를 하는 것들은 모두 메소드이기 때문에 () 가 붙음
- import java.io.BufferedReader;
- import java.io.InputStreamReader;
- import java.io.IOException;
// import 구문의 위치는 class 위에 작성한다.// 자바 프로그램에 '키보드'를 입력하는 과정이라고 보면 됨 - 왜냐하면 사용자로부터 값을 입력받아오기 때문에
// br.readLine();
→ 입력값(입력 대기열에 남아있는 값)을 "문자열"로 반환
// public static void main(String[] args) throws IOException
---------------------------
인풋, 아웃풋에 에러가 있으면 자바가 예외처리를 해도 된다고 허용하는 문구/*================================================ ■■■ 자바 기본 프로그래밍 ■■■ - 변수와 자료형 - 자바 기본 입출력 : BufferedReader 클래스 ================================================*/ import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; public class Test012 { public static void main(String[] args) throws IOException { // 키보드 장착(생성) BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // 주요 변수 선언 int r; //-- 반지름 final double PI = 3.141592; //-- 원주율(π) ----------- 변수의 상수화 『final』 double a, b; //-- 원의 넓이, 둘레 // 연산 및 처리 // ① 사용자에게 안내 메세지 출력 //System.out.println("원의 반지름 입력 : "); //-- 줄이 바뀌어 아래쪽에서 입력 커서가 나오기 때문 System.out.print("원의 반지름 입력 : "); // ② 사용자가 입력한 값을 받아와서 반지름 변수 r 에 담아내기 //r = br.readLine(); //-- BufferedReader 의 readLine() // → 입력값(입력 대기열에 남아있는 값)을 "문자열"로 반환 // -------------------------- 도구 (숫자모양의 문자열 → 정수) // r = "5000"; // ------ → 정수 형태로 변환하는 과정 필요 // ---------------- // 도구(숫자모양의 문자열 → 정수) // ---- // 『parseInt()』 → Integer.parasInt() // "가나다" → 정수 -------(X)변환 불가 // "2500" → 정수 -------(O) 2500 // Integer.parseInt("2500"); → 2500 //-- 매개변수로 넘겨받은 문자열 데이터를 정수형으로 반환 // 단, 이 때 넘겨받는 문자열 데이터는 숫자 형태(Number format)여야 한다. r = Integer.parseInt(br.readLine()); // r = Integer.ParseInt("2500"); // r = 2500; //-- 사용자가 입력한 값을 br 즉 BufferReader 의 『readLine()』 // 메소드를 활용하여 문자열로 읽어들인 후 // 그 값을 『Integer.parseInt()』를 통해 숫자형(정수형)으로 변환한 후 // 정수 형태의 반지름 변수 r 에 담아내는 과정을 수행한다. // ③ 넓이 및 둘레 계산 (연산) // → 각각 변수 a 와 b 에 담아내기 a = r * r * PI; b = r * 2 * PI; //printf() System.out.printf(">> 반지름이 %d인 원의 넓이는 %.2f 이며,\n", r, a); System.out.printf(">> 반지름이 %d인 원의 둘레는 %.2f 이다.\n", r, b); } } //실행 결과 /* 원의 반지름 입력 : 55 >> 반지름이 55인 원의 넓이는 9503.32 이며, >> 반지름이 55인 원의 둘레는 345.58 이다. 계속하려면 아무 키나 누르십시오 . . . */
Test013
○ 퀴즈
// 삼각형의 밑변의 길이와 높이를 사용자로부터 입력받아
// 이 삼각형의 넓이를 구하는 프로그램을 구현한다.
// 실행 예)
// ■ 삼각형 넓이 구하는 프로그램 ■
// - 삼각형의 밑변 입력 : 3
// - 삼각형의 높이 입력 : 5
// >> 밑변이 3, 높이가 5인 삼각형의 넓이 : xxx
// 계속하려면 아무 키나 누르세요...
// ※ 문제 인식 및 분석
// 삼각형의 넓이 = 밑변 * 높이 / 2
// 사용자로부터 데이터를 입력받아 처리 → BufferedReader 활용
// BufferedReader 를 여러 개 사용? 한 개 사용?풀이)더보기import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; public class Test013 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // 주요 변수 선언 int a, b; // 밑변, 높이 double x; // 삼각형의 넓이 // 연산 및 처리 // ① 사용자에게 받을 데이터 안내 메세지 출력 - 밑변 받아오기 System.out.println("■ 삼각형 넓이 구하는 프로그램 ■"); System.out.print("- 삼각형의 밑변 입력 : "); // ② 사용자가 입력한 값을 받아와서 변수 a에 담아내기 a = Integer.parseInt(br.readLine()); // ③ 사용자에게 받을 데이터 안내 메세지 출력 - 높이 받아오기 System.out.print("- 삼각형의 높이 입력 : "); // ④ 사용자가 입력한 값을 받아와서 변수 b에 담아내기 b = Integer.parseInt(br.readLine()); // ⑤ 넓이 계산 (연산) x = (double)(a * b) / 2; // 결과 출력 System.out.printf(">> 밑변이 %d, 높이가 %d인 삼각형의 넓이 : %f\n", a, b, x); } } //실행 결과 /* ■ 삼각형 넓이 구하는 프로그램 ■ 삼각형의 밑변 입력 : 3 삼각형의 높이 입력 : 5 >> 밑변이 3, 높이가 5인 삼각형의 넓이 : 7.500000 계속하려면 아무 키나 누르십시오 . . . */
- Test014
- 변수와 자료형
- 자바 기본 입출력 : BufferedReader 클래스
더보기/*================================================ ■■■ 자바 기본 프로그래밍 ■■■ - 변수와 자료형 - 자바 기본 입출력 : BufferedReader 클래스 ================================================*/ // 사용자로부터 이름, 국어점수, 영어점수, 수학점수를 입력받아 // 이름과 총점을 출력하는 프로그램을 구현한다. // 실행 예) // 이름을 입력하세요 : 행성c // 국어 점수 입력 : 90 // 영어 점수 입력 : 80 // 수학 점수 입력 : 70 // ====[결과]==== // 이름 : 행성c // 총점 : 240 // 계속하려면 아무 키나 누르세요... import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; public class Test014 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String name; // 이름 int a,b,c; // 국어점수, 영어점수, 수학점수 int total; // 총점 System.out.print("이름을 입력하세요 : "); name = br.readLine(); System.out.print("국어 점수 입력 : "); a = Integer.parseInt(br.readLine()); System.out.print("영어 점수 입력 : "); b = Integer.parseInt(br.readLine()); System.out.print("수학 점수 입력 : "); c = Integer.parseInt(br.readLine()); total = a + b + c; System.out.println(); System.out.println("====[결과]===="); System.out.printf(" 이름 : "+ name); System.out.printf("\n 총점 : %d\n", total); } } // 실행 결과 /* 이름을 입력하세요 : 행성c 국어 점수 입력 : 90 영어 점수 입력 : 80 수학 점수 입력 : 70 ====[결과]==== 이름 : 행성c 총점 : 240 계속하려면 아무 키나 누르십시오 . . . */
자바 기본 입출력
- System.in.read();
- System.in.skip();『System.in.read()』 메소드는 (입력 대기열로부터) 한 문자만 가져온다.
단, 입력받은 하나의 문자를 문자 그대로 가져오는 것이 아니라 ASCII Code 값으로 반환한다.- Test015
- 자바 기본 입출력 : System.in.read() + System.in.skip()
더보기/*================================================ ■■■ 자바 기본 프로그래밍 ■■■ - 자바 기본 입출력 : System.in.read() ================================================*/ // 실행 예) // 한 문자 입력 : A // 한자리 정수 입력 : 9 // >> 입력한 문자 : A // >> 입력한 정수 : 9 // 계속하려면 아무 키나 누르세요... import java.io.IOException; public class Test015 { public static void main(String[] args) throws IOException { // 주요변수 선언 char ch; //-- 입력받은 문자를 담을 변수 int n; //-- 입력받은 정수를 담을 변수 //char temp; //-- 임시 (방법1) //연산 및 처리 // - 사용자에게 안내 메세지 출력 System.out.print("한 문자 입력 : "); ch = (char)System.in.read(); //입력 대기열에 남아있는 엔터 (『\r』『\n』)를 스킵(건너뛰기) System.in.skip(2); //-- 매개변수 (2)에 의해 두 글자를 읽어내지 않고 건너뛴다. (버린다.) // - 사용자에게 안내 메세지 출력 System.out.print("한 자리 정수 입력 : "); //n = System.in.read(); //temp = (char)System.in.read(); //-- (방법1) n = System.in.read(); // 1 → 49 // 2 → 50 // 3 → 51 // : // 9 → 57 // n을 48만큼 감소 시켜라~!!! n -=48; // 결과 출력 System.out.println(); // 개행 System.out.println(">> 입력한 문자 : " + ch); //System.out.println(">> 입력한 정수 : " + n); //System.out.println(">> 입력한 정수 : " + temp); //-- (방법1) System.out.println(">> 입력한 정수 : " + n); } }
// 개인적 감상
더보기클래스명을 짓는 법이 매우 다양했다.
그래서 코딩이라는 것이 같은 팀 구성원들 (이외에도 협력하는 사람) 끼리도 정보를 공유하고 협업하기 위해 많은 약속을했고, 이는 단지 한사람의 개발자가 혼자 기계와 소통하여 만들어내는 것이 아니라는 것을 확인할 수 있었다.
자바가 고등언어이기 때문에, 사용자에게 가까워 사용자의 생각을 표현하는 것이 쉽다고 했다. 하지만 그럼에도 불구하고 System.in.skip() 을 보면서 기계는 정말 시키는 것만 잘 한다는 것 그래서 사용자가 기계적 관점으로 일일이 잘 지정을 해줘야한다는 것을 알 수 있었다.
728x90'SsY > Class' 카테고리의 다른 글
008. 조건/삼항 연산자 , 실행 흐름의 컨트롤(조건문, 분기문,제어문)if, if~else 실습 (0) 2023.02.19 007. 자바의 입출력 print, Scanner, 실수 정밀도, 키보드 주요 특수문자 영문이름, + 연산자 실습 (1) 2023.02.18 005. 비트 연산자, 변수와 자료형 / 키워드 및 식별자 / 연산자 실습, final(상수화) (0) 2023.02.15 004. 음의 정수 표현(2의 보수), 실수 표현 방식의 이해, 상수와 형 변환, 연산자 (0) 2023.02.11 003. EditPlus , 자바의 기본 프로그래밍 & 자료형 (1) 2023.02.11