Languages/Java

[국비지원교육] 04. Java 메소드 활용방법 정리

반응형

헷갈리는 내용 정리. 학부때도 그랬던 것 같은데 나는 메소드 활용방법이 항상 헷갈렸다. 어디선 메소드에 변수를 집어넣어서 결과를 뽑고, 어디선 클래스명이 메소드 클래스명이고 어디선 내가 지정한 변수명에 메소드를 붙이고... 이번 국비지원교육때는 더 이상 헷갈리지 않겠다는 마음가짐으로 짚고 넘어가기.

 

 

 

1. if문 안에서 항등식 조건문 대신 equals()메소드

 

- 메소드 설명문

public boolean equals(Object anObject)

Compares this string to the specified object. The result is true if and only if the argument is not null and is a String object that represents the same sequence of characters as this object.

 

- 메소드 사용예시

//아이디는 hong, 비밀번호는 1234 일 때만 로그인 성공 케이스 
if(id == "hong" && pw == "1234") 
	result = "로그인 성공!"; //if문 실행 안됨. 프린트해보면 맞게 나오지만 else문으로 넘어감.
else
	result = "아이디나 비밀번호가 틀렸습니다.";
    
//해결방법 equals()함수 사용
if(id.equals("hong") && pw.equals("1234"))
	result = "로그인 성공!";
else
	result = "아이디나 비밀번호가 틀렸습니다.";

String 변수인 id에 들어있는 내용이 ()안의 오브젝트인 String과 같은지 판단하고자 한다면

-> id.equals("1234");

풀어쓰기: "1234"가 -> equals()한 지 본다 -> id와 비교했을 때 

의문사항. Object에 int나 float형 변수도 가능할까?

-> int로는 사용 불가능. 참조형 변수여야 하는 것 같다. Integer과 같은 Wrapper 변수를 사용해야 메소드 사용이 가능하다. 

 

 

 

2. 소문자를 대문자로 바꿔주는 Character 클래스의 toUpperCase() 메소드

 

- 메소드 설명문

public static char toUpperCase(char ch)

Converts the character argument to uppercase using case mapping information from the UnicodeData file.

 

- 메소드 사용예시

//앞에서 char gender; 선언한 상태이며 사용자에게서 입력을 받았다.
gender = Character.toUpperCase(gender);

gender에 입력된 문자를 Character 클래스에 있는 toUpperCase()메소드를 활용하여 대문자로 변경처리하고 있다.

풀어쓰기: gender를 -> toUpperCase()하여 -> gender에 대입한다. 

 

 

 

3. 소문자를 대문자로 바꿔주는 String 클래스의 toUpperCase() 메소드

 

- 메소드 설명문

public String toUpperCase()

Converts all of the characters in this String to upper case using the rules of the default locale.

 

- 메소드 사용예시

Scanner sc = new Scanner(System.in);
System.out.println("직업을 입력하세요: A.회사원 B.학생 C.주부 D.기타");
String job = sc.nextLine();
String upjob = job.toUpperCase();

Scanner 클래스에는 char형을 받는 메소드가 없으므로 String으로 받는다. 

(charAt(0)메소드를 쓰면 된다고 함)

String에 있는 내용을 대문자로 바꿔준 내용을  upjob에 넣었는데.. 이 때 그냥 job을 써줘도 된다. 굳이 새 String 선언할 필요 없었음. 

 

 

 

4. 기타 몰랐는데 알게 된 점

- sc.nextLine() //nextInt 다음에 nextLine 쓸 때 엔터값을 먹을 nextLine을 한번 더 써줘야 한다.

- System.in.read() 메소드 사용 시 메인메소드 괄호 뒤에 throws IOException 이라고 써줘야 함. 

public abstract int read() throws IOException

Reads the next byte of data from the input stream. The value byte is returned as an int in the range 0 to 255. If no byte is available because the end of the stream has been reached, the value -1 is returned. This method blocks until input data is available, the end of the stream is detected, or an exception is thrown.

728x90
반응형