[ITWILL : JSP] ==과 str.equals(str2) 차이, 객체와 클래스
ITWILL학원 : 16강 JSP기초 BY 정규태강사
1. ==과 str.equals(str2) 차이점
두가지는 공통적으로 비교연산을 하지만 차이점이 존재한다.
String타입을 비교할때는 equals()를 사용해야한다.
== : 두개의 문자열 객체가 완전히 같은지 비교(주소비교)
- 메모리 주소를 비교(동일한 객체인지)
- stack 메모리에 있는 주소를 비교
- 기본형데이터타입을 비교할때 사용한다
str.equals(str2) : 두 개의 문자열 객체의 문자 데이터값이 같은지 비교
- 대상의 내용을 비교
- heap
- 모든 참조형데이터타입에 사용하는 것은 아니고 참조형데이터타입중에 string타입 비교시에만 사용 가능하다.
- 다른 참조형데이터타입을 비교하는 방법은 상속을 배운뒤 알게된다.
1 | //일치여부확인(==이용) |
2. 객체와 클래스
- 객체 : 모든 대상,기능들이다.
->객체를 프로그램에 포함하기위해서는 내가 필요한 기능만 뽑는 즉, 추상화과정이 필요하다.
- 클래스 : 추상화된 객체를 코드로 표현한 형태
흔히 이를 붕어빵만들기에 비유하곤 한다.
클래스 - 객체 => 인스턴스화(객체화)
붕어빵틀 - 붕어빵 => 가열동작
하지만 붕어빵틀과 붕어빵만 있으면 붕어빵을 만들수있을까?
가열동작이 없으면 붕어빵은 만들어지지않는다
이 가열동작은 인스턴스화(객체화, 메모리에 올린다)라고 생각하면 쉽다.
이때 new연산자를 이용한다. -> new를 하면 메모리에 올라간다.
3. 클래스
1. 클래스와 객체는 같다?
NOPE! 다르다!
2. 클래스의 구성요소
- 생성자 : 멤버 변수를 초기화
- 멤버 변수 : 객체의 속성
- 멤버 메서드 : 객체의 동작(기능)
왼쪽처럼 기본데이터형의 변수를 선언하면 stack메모리에 올라간다.
오른쪽처럼 클래스를 선언하면 stack에는 a라는 변수가 생성되고 heap에는 new Test()라는 객체가 생성된다.
3. 클래스예시
휴대폰이라는 객체가 있다고 생객해보자
- 속성 : model, price, color …등등
- 기능 : on/off(), tell(), sendMSG() …등등
1 | class Phone { |