비디오: Java - 클래스와인스턴스그리고객체지향 (5/5) : 객체화 3 2024
자바로 객체 작업을 시작하면 ==와!를 사용할 수 있습니다. = 개체를 서로 비교합니다. 예를 들어 컴퓨터 화면에 표시되는 버튼은 객체입니다. 그냥 마우스로 클릭 한 것이 화면의 특정 단추인지 여부를 묻습니다. 당신은 자바의 동등 연산자로 이것을한다.
if (예: getSource () == bCopy) {클립 보드. setText (getText ());
Java의 비교 방법을 사용한 큰 문제는 두 문자열을 비교할 때입니다. 두 문자열을 서로 비교할 때 두 개의 등호를 사용하고 싶지 않습니다. 이중 등호를 사용하면 "이 문자열이 다른 문자열과 똑같은 위치에 메모리에 저장되어 있습니까? "보통, 당신이 묻고 싶은 것이 아닙니다.
대신에, 보통 "이 문자열은 다른 문자열과 같은 문자를 가지고 있습니까? "두 번째 질문 (더 적절한 질문)을 요청하려면 Java의 String 유형에 라는 메소드가 있습니다. 알려진 우주의 다른 모든 것과 마찬가지로이 메소드는 Java API에서 Application Programming Interface의 줄임말로 정의됩니다.
equals 메소드는 두 문자열을 비교하여 두 문자열이 같은 문자인지 비교합니다. Java의 equals 메소드를 사용하는 예제는 다음 코드 목록을 참조하십시오. (이 그림은 목록에있는 프로그램의 실행을 보여줍니다.)
import static java. 랭. 체계. *; import java. util. 스캐너; 공용 클래스 CheckPassword {공공 정적 무효 메인 (문자열 args []) {out. print ("What is the password?"); 스캐너 키보드 = 새 스캐너 (입력); String password = 키보드. 다음 것(); 아웃. println ("입력 한 >>"+ password + "<<"); 아웃. println (); if (password == "swordfish") {out. println ("입력 한 단어가 저장 됨"); 아웃. println ("진짜와 같은 장소에"); 아웃. println ("비밀번호. 반드시 a이어야합니다"); 아웃. println ("해커.");} else {out. println ("입력 한 단어가 아닙니다"); 아웃. println ("같은 장소에 저장 됨"); 아웃. println ("진짜 비밀 번호,하지만 그게"); 아웃. println ("큰 문제가 아니야.");}. println (); if (password. equals ("swordfish")) {out. println ("입력 한 단어에"); 아웃. println ("실제와 같은 문자"); 아웃. println ("암호, 당신은 우리를 사용할 수 있습니다"); 아웃. println ("귀중한 시스템");} else {out. println ("입력 한 단어가 아닙니다"); 아웃. println ("같은 문자를 가짐"); 아웃. println ("실제 비밀번호, 할 수 없습니다"); 아웃. println ("우리의 소중한 시스템을 사용하십시오.");} 키보드. close ();}}
목록에서 호출 키보드. next ()는 사용자가 컴퓨터 키보드에서 입력하는 단어를 가져옵니다. 코드는이 단어를 password라는 변수로 확장합니다. 프로그램의 if 문은 암호를 "swordfish"와 비교하는 두 가지 기술을 사용합니다.
인쇄 된 책의 예는 대부분 텍스트 기반이지만, Dummies 웹 사이트에서 대부분의 예제의 더 멋진 버전을 찾을 수 있습니다. 이 애호가 버전에는 윈도우, 버튼, 텍스트 필드 및 기타 그래픽 사용자 인터페이스 (GUI)의 다른 요소가 있습니다.
두 기법 중 더 적절한 것은 Java의 equals 메소드를 사용합니다. equals 메서드는 재미있을 것입니다. 호출 할 때 한 문자열 뒤에 점을 넣고 다른 문자열을 괄호에 넣기 때문입니다. 하지만 그렇게해야합니다.
Java의 equals 메소드를 호출 할 때 어떤 문자열이 점을 가져오고 괄호를 얻는지는 중요하지 않습니다. 예를 들어 목록에서
if ("swordfish". equals (password))
메서드를 사용할 수도 있습니다.
자바의 equals 메소드 호출은 불균형 해 보입니다.하지만 그렇지 않습니다. 점과 괄호 사이의 명백한 불균형 뒤에는 이유가 있습니다. 암호 개체와 "황새치"개체의 두 개체가 있다고 가정합니다.
이 두 객체는 각각 String 유형입니다. (그러나 password는 String 유형의 변수이고 "swordfish"는 String 리터럴입니다.) 암호를 쓸 때. equals ("swordfish"), 당신은 패스워드 객체에 속한 equals 메쏘드를 호출한다. 이 메서드를 호출하면 메서드의 매개 변수 (의도 된 말장난)로 "swordfish"를 메서드에 제공합니다.
문자열을 서로 비교할 때는 두 개의 등호가 아니라 equals 메서드를 사용하십시오.