java 72

[Java]String 클래스 Basic

기본 자료형(byte/short/int/long/char/float/double)에서 '=='는 실제 저장된 값을 비교하는 비교연산자로 쓰였다. 하지만 참조형(Stirng,배열,클래스,인터페이스)에서 '=='는 주소를 비교하는 주소비교연산자로 쓰인다. (단, 같은 클래스 타입끼리만 비교가 가능하다.) ▲ 우선 기본자료형부터 비교연산자를 이용해 비교해보자. 당연히 똑같은 20을 가지고 있으므로 '같다'가 나올 것이다. 이번에는 참조형에서 사용을 위해 클래스형을 사용해보자. ▲ 두 종류의 클래스를 만들고 인스턴스화(객체화)(메모리 할당)까지 해주었다. ▲ 클래스가 다른 a와 b의 주소를 비교하려고 했더니 'Incompatible operand types A and B' error가 나면서 비교가 되질 않는다..

Java 2022.03.09

[Java]Wrapper class - part.3(Character)

char형의 wrapper클래스는 Character이다. ▲ 첫행에서 auto-boxing을, 두번째 행에서는 auto-Unboxing을 하였다. 어쨋든 모두가 character형이다. [Character class의 주요 method] 1) CodePointAt ▲ 문자열 ABCD에서 index 2번에 위치한 C의 아스키 코드값은 67이므로 결과값은 67이 출력된다. 2) isDigit ▲ isDigit은 'Is it digital?'이다. digital은 0부터9까지의 아라비아숫자를 뜻한다. 반환은 boolean형태로 되며 인자로 char형 또는 아스키코드값을 받을 수 있다. 3) isLetter ▲ isLetter는 'Is it Letter?'이다. 문자인가요? 라고 묻는 것과 같으며 문자이면 tr..

Java 2022.03.08

[Java]Wrapper class - part.2(Integer)

[Integer Wapper클래스의 주요 메소드] 1) 숫자형식의 문자열을 숫자로 변경 ▲ 두번째 코드에서 숫자 10과 문자열1000을 더하면 즉, int형과 String형을 더하면 String형으로 연산되며 출력된다. 따라서 결과값이 101000이라는 문자열로 출력된 것이다. parseInt와 valueOf는 오직 숫자형식의 문자열'만'을 인자로 입력받으며 해당 문자열을 parseInt는 int형으로, valueOf는 Integer형으로 변경하여 반환한다. 둘다 어쨌든 숫자형인것이다. 따라서 3행과 4행은 숫자형식의 문자열인 "1000"을 다시 숫자형으로 바꾸어서 10과 연산을 하기때문에 1010이 나온다. ▲ "1억원"은 숫자형식의 문자열이 아니므로 parstInt나 valueOf를 사용할 수 없다...

Java 2022.03.08

[Java]Wrapper class - part.1

Wrapper class란? 기본형의 값을 참조형으로 사용해야 하는경우 사용되는 클래스를 의미하며 기본형의 값을 참조형으로 포장한다는 의미로 WARAPPER 클래스라 부른다. JDK1.4이전 버전에서는 엄격하게 구분 되었으나 JDK5.0 이상 버전에서는 auto-boxing및 auto-unboxing지원으로 쉽게 변환 가능하다. Auto-boxing : 기본 자료형이 자동으로(auto) 참조형(wrapper클래스)으로 바뀌는 것 ex.) int -> Integer Auto-unboxing : 참조형(Wrapper클래스)이 기본자료형으로 자동으로 바뀌는 것 ex.) Integer -> int ▲ int형인 num1을 num1Obj이라는 int형 클래스인 Integer클래스로 auto-boxing하였다. I..

Java 2022.03.08

[Java]Static block

동일 클래스 안의 main보다 먼저 실행됨 즉 main에 실행코드가 없어도 static블락안에 있는 내용이 실행된다. 단, 다른 클래스에 main이 있는 경우는 main이 순차적으로 실행되다 static블락이 있는 클래스를 인스턴스화 할때 그때 생성자보다 먼저 static블락이 실행된다. static 블락안에서는 정적 멤버만 사용가능 구조는 아래와 같다. ▲ 클래스안에 메소드와 맴버들을 만들어보자. ▲ 그리고 그 아래에 이어서 static block을 만들어보자. statc block안에는 당연히 인스턴스형 맴버는 올 수 없다는 것을 이제는 알 것이다. 이렇게 StaticBlock이라는 자바파일에서 클래스를 만들고 같은 패키지의 다른 파일에서 호출해보자. ▲ StaticBlockApp이라는 자바파일안에서..

Java 2022.03.07

[Java]접근지정자(Access Modifier)

접근지정자란? 클래스와 클래스 사이 혹은 클래스의 맴버간의 접근을 제어하는 기능을 가진 한정자 접근지정자의 크기) Public > protected > default > private 순이다. 여기서 default는 생략형 또는 package 접근지정자라고도 한다. 아무 접근지정자도 사용하지 않으면 default인 것이다. ▲ class앞에 아무것도 붙지 않았으므로 package 접근지정자가 생략되어 있는 것이다. public을 사용하면 모든 클래스에서 접근가능하다. private을 사용하면 자기 클래스안에서만 접근가능하며 다른 클래스에서는 접근 불가능하다. 접근지정자는 인터페이스와 클래스, 클래스의 모든 맴버에는 다 붙일 수 있다. 하지만 지역변수(메소드 안에서 선언한 변수 등)에는 붙일 수 없다. 또..

Java 2022.03.07

[Java]Class - part.3

part.1에서 만든 Class Person을 사용하기 위해 하나의 클래스를 더 만들어보자. 이번에는 자동차를 추상화해보자 즉, 자동차 설계도를 만들자 즉, 자동차 클래스를 만들자. ▲ 클래스명은 Car로 하고 이번에는 상수도 사용해보았다. 우리가 자동차하면 생각나는 속성들 몇가지를 맴버변수로 만들었다. 여기서 소유주 owner의 자료형은 우리가 class - part.1에서 만들었던 class Person을 자료형으로 사용하였다. ▲ 맴버메소드로 자동차의 대표적인 행동(?)으로 운전을 가져와 만들었다. ▲ 마지막으로 맴버변수초기화를 위한 메소드와 최종 정보를 출력하기 위한 메소드를 만들었다. 이제 출력하기위한 CarApp.java파일에서 출력해보자. ▲ main메소드안에서 car1이라는 이름의 인스턴스..

Java 2022.03.05

[Java]Class - part.2

이번에는 학생을 추상화 시켜보자 즉, 설계도를 만들어보자 즉, 클래스를 만들어보자. 1) Student 클래스 만들고 맴버변수 및 맴버메소드 만들기 2) 다른 java 파일에서 실행시켜보자 ▲Student형의 인스턴스변수 student1을 선언과 동시에 객체화(메모리 할당)시켰다. 이후 student1이 참조하고 있는 주소값을 출력해보자. ▲ 인스턴스 변수 선언과 객체화 모두 잘 된 것을 볼 수 있다. ▼이제 여기서 student1이 상속받은 Student클래스의 맴버메소드를 사용해보자. 출력하게 되면 아래와 같은 결과값이 출력된다. ▲ NullPointerException 이라는 Run-time error가 발생하는데 왜그럴까?? 바로 .printStudent를 호출하면 우리가 정한 맴버메소드를 보다시..

Java 2022.03.04

[Java]Class - part.1

Java, JavaScript, C++, C#과 같은 언어들은 객체지향 프로그래밍언어라고 한다. 객체지향 프로그래밍(OOP : Object Oriented Programming)이란? : 인간의 현실세계를 정보화 시스템으로 반영하기 위해 모든 개념(사물, 현상, 사건)등을 객체화 시켜 프로그램에 반영하는 것. 여기서 말하는 객체(Object)란 유무형의 물체, 현상, 사건 등을 의미한다. 쉽게 말해 자동차, 컴퓨터, 사람 등등이 바로 객체이다. 이러한 객체는 행동과 속성(성질or상태)를 가지고 있다. 사람은 이름,키,몸무게,혈액형 등의 속성(성질or상태)를 가지고 있고 밥을 먹는다, 잔다, 운동한다 등과 같은 행동이 있다. 자동차는 브랜드, 차종, 엔진 등의 속성(성질or상태)를 가지고 있고 주행한다, ..

Java 2022.03.04

[Java]method없이 가위바위보게임 만들기

제목이 곧 내용이다. method를 사용하지 않고 컴퓨터와 가위바위보 게임을 하는 코드를 만들어보자 컴퓨터는 랜덤으로 가위or바위or보를 낼 것이고, 우리는 사용자의 입력을 받아서 승패 또는 무를 비교할 것이다. 컴퓨터는 1부터 3까지의 숫자 중 무작위로 하나를 리턴할 것이고, 1은 '가위', 2는 '바위', 3은 '보'라고하자. 0) 상수 선언 ▲ 우선 숫자로 입력하고 출력하려니 숫자와 가위or바위or보라는 문자를 비교하는 것이 귀찮아서 상수로 해당 숫자와 연결하자. 1) 출력메뉴 만들기 ▲ 가위바위보 선택과 종료를 위한 출력용 메뉴를 만들었다. 2) 컴퓨터 숫자 랜덤발생기 만들기 특정범위에서 숫자를 랜덤하게 발생시키는 코드는 아래와 같은 규칙이 있다. ▲ Math라는 class에서 random이라는 ..

Java 2022.03.04