카테고리

분류 전체보기 (68)
JAVA-기본 (7)
JAVA-AWT (24)
JAVA-클래스의 중요메소드 (23)
JAVA-람다식 (0)
Android Studio (7)
Python (1)
OpenCV (1)
AWS (0)
webrtc (0)
javascript (4)
처리방침 (1)
rss 아이콘 이미지
반응형

앞의 강의에서 equals에 대해서 확인하였습니다. 그렇다면 다음 예제를 통하여 equals에 대해서 알아보도록 하겠습니다.


import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

 

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JTextField;

 

public class T3 extends JFrame implements ActionListener {

 

        JPanel p1 = new JPanel();

        JButton b1 = new JButton("123");

        JButton b2 = new JButton("1234");

        String str=new String("123");

        JLabel l1 = new JLabel(str);

        JTextField t1 = new JTextField();

 

        public T3() {

               p1.setLayout(new GridLayout(2, 2));

               add(p1);

               p1.add(l1);

               p1.add(t1);

 

               b1.addActionListener(this);

               b2.addActionListener(this);

 

               p1.add(b1);

               p1.add(b2);

 

               // ------------------------------------------------

               setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

               // 프레임의 x버튼을 활성화하여 닫기버튼이 실행가능해짐

               setSize(500, 500); // 프레임 사이즈 지정

               setVisible(true); // 프레임을 보이게

               setLocationRelativeTo(null); // 프레임 실행시 위치 중앙

        }

 

        @Override

        public void actionPerformed(ActionEvent e) {

               String a = e.getActionCommand();

              

               if (a.equals(l1.getText())) {

                       t1.setText("같음");

               } else

 

                       t1.setText("다름");

        }

 

        public static void main(String args[]) {

               T3 test = new T3();

        }

}


<결과물>


 123버튼과 l1 123의 비교


 1234버튼과 l1 1234의 비교


만약, addActionListener의 클래스안에 equals가 아니라 ==연산자를 사용하면 어떻게 될까요?

 import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

 

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JTextField;

 

public class T3 extends JFrame implements ActionListener {

 

        JPanel p1 = new JPanel();

        JButton b1 = new JButton("123");

        JButton b2 = new JButton("1234");

        String str=new String("123");

        JLabel l1 = new JLabel(str);

        JTextField t1 = new JTextField();

 

        public T3() {

               p1.setLayout(new GridLayout(2, 2));

               add(p1);

               p1.add(l1);

               p1.add(t1);

 

               b1.addActionListener(this);

               b2.addActionListener(this);

 

               p1.add(b1);

               p1.add(b2);

 

               // ------------------------------------------------

               setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

               // 프레임의 x버튼을 활성화하여 닫기버튼이 실행가능해짐

               setSize(500, 500); // 프레임 사이즈 지정

               setVisible(true); // 프레임을 보이게

               setLocationRelativeTo(null); // 프레임 실행시 위치 중앙

        }

 

        @Override

        public void actionPerformed(ActionEvent e) {

               String a = e.getActionCommand();

              

               if (a==l1.getText()) {

                       t1.setText("같음");

               } else

 

                       t1.setText("다름");

        }

 

        public static void main(String args[]) {

               T3 test = new T3();

        }

}


<결과물>

123버튼과 l1 123의 비교

 

 1234버튼과 l1 1234의 비교


자료가 마음에 드셨다면 자주 찾아주세요^^ 글 올리는데 힘이됩니다.

반응형

'JAVA-클래스의 중요메소드 > Object클래스' 카테고리의 다른 글

JAVA-중요02-toString(예제)  (0) 2018.06.21
JAVA-중요02-toString  (0) 2018.06.21
JAVA-중요01-equals  (0) 2018.06.21
반응형

아래는 Object클래스의 메소드들입니다. 그 중에서 가장 많이 사용하는 메소들을 골라서 설명 드리도록 하겠습니다.


equals();

equals() 메소드는 두개의 객체가 같은지를 비교하며 그 결과값을 boolean의 데이터 타입으로 반환합니다. 아래는 equals의 특징을 서술하였습니다.


1. equals는 그 객체의 내용을 비교할 수 있는 메소드 입니다. 연산자== 의 형태는 객체가 가지는 주소가 같은지 확인하는 것이지만 equals는 그 내용이 같은지 확인하는 것입니다.

2. equals의 반대는 앞쪽에 ! 을 표시하시면 됩니다. 그렇다면 같이않다는 것을 나타내는 것이겠지요.


예제를 하나씩 살펴보면서 equals에 대해서 파악해보도록 하겠습니다.


 public class T2 {

 

        public static void main(String[] args) {

              

               int a = 1;

               int b = 1;

               String c="1";

               String d="1";

              

               System.out.println(a==b);

               System.out.println(c==d);

               //----------------------------

               String e= new String("1");

               String f= new String("1");

              

               System.out.println(e==f);

               }

        }

 

 <결과물>


위의 예제를 살펴보도록 하겠습니다.

int a,b와 String c,d는 System.out의 출력결과 true라는 값을 반환하였습니다.

그러나 Stirng e와 f 는 false라는 값을 반환하였습니다. "1"이라는 값으로 true가 반환되어야 하지만, String 초기화 및 선언시 새로운 주소 객체에 "1"을 넣어라는 new를 사용하였습니다.

int a=1; int b=1; 은 서로 같은 주소값과 같은 결과값

String에서 new로 지정한 것은 서로 다른 주소값에 결과를 넣음


==는 메모리의 위치를 비교하며 equals는 값을 비교합니다. 

아래의 예제를 보면서 살펴보도록 하겠습니다.


 public class T2 {

 

        public static void main(String[] args) {

              

               String e= new String("1");

               String f= new String("1");

              

               if(e==f)

                       System.out.println("e f 같습니다.");

               else

                       System.out.println("e f 다릅니다.");

               }

        }

 <결과물>




 public class T2 {

 

        public static void main(String[] args) {

              

               String e= new String("1");

               String f= new String("1");

              

               if(e.equals(f))

                       System.out.println("e f 같습니다.");

               else

                       System.out.println("e f 다릅니다.");

               }

        }

 <결과물>


그래서 우리는 주소로 된 데이터를 비교할때 연산자 ==가 아닌 equals라는 메소드가 필요합니다. 



자료가 마음에 드셨다면 자주 찾아주세요^^ 글 올리는데 힘이됩니다.

반응형

'JAVA-클래스의 중요메소드 > Object클래스' 카테고리의 다른 글

JAVA-중요02-toString(예제)  (0) 2018.06.21
JAVA-중요02-toString  (0) 2018.06.21
JAVA-중요01-equals(예제)  (0) 2018.06.21

JAVA-기본06-자바변수(String)

JAVA-기본/ 기본1 2018. 6. 21. 00:43 Posted by IT-개발자
반응형

String은 연속된 문자열을 표현하는 클래스입니다. 아래는 String의 특징입니다.


1. String은 맨 앞의 S는 대문자입니다.

2. 문자열 형태로 큰따옴표 사이에 값을 넣습니다. "hello"


 public class T1 {

 

        public static void main(String[] args) {

               // 변수 선언 초기화

               String a = "안녕하세요";

               String b = "반갑습니다";

               String c = "스티링입니다";

               String d = "참조하세요";

               int e = 1;

 

               System.out.println(a);

               System.out.println(b);

               System.out.println(c);

               System.out.println(d);

               System.out.println("참조변수이지만 리터널 제공");

               System.out.println(a + c);

               System.out.println(a + c + "안녕하세요" + a + c + "문자입니다");

               System.out.println(d + e + c);

 

        }

 

}


<결과물>



자료가 마음에 드셨다면 자주 찾아주세요^^ 글 올리는데 힘이됩니다.

반응형

'JAVA-기본 > 기본1' 카테고리의 다른 글

JAVA-기본05-자바변수04(실수)  (0) 2018.06.21
JAVA-기본04-자바변수03(정수)  (0) 2018.06.21
JAVA-기본03-자바변수02(char)  (0) 2018.06.20
JAVA-기본02-자바변수01(boolean)  (0) 2018.06.20
JAVA-기본01-콘솔창출력  (0) 2018.06.20