본문 바로가기

전체 글48

[JAVA]오버로딩 자바에서는 클래스내에 같은 이름의 메소드라도 매개변수의 타입, 순서, 개수가 다른 형태의 메소드를 허용한다. 이를 오버로딩이라고 한다. 위에 처럼 설명한다면 이해하기는 어려울 것이다. 우리는 차를 가지고 주유소에 방문하여 주유한다고 가정하자. 주유소는 주유를 해주면서 돈을 받아야한다. 이때 우리가 현금결재를 CashRefuel, 신용카드를 CreditRefuel이라 할수 있다. class Car{ private int energy; private void cashRefuel(int cash){ //금액에 따른 주유량을 구하는 로직이 들어갈수 있다. energy++; } private void creditRefuel(int cash){ //금액에 따른 주유량을 구하는 로직이 들어갈수 있다. energy++.. 2022. 5. 4.
[JAVA]데이터 타입 데이터 타입 기본 타입 정수, 실수, 문자, 논리 리터널을 저장하는 타입 정수타입 byte, char, short, int, long 실수타입 float,double 논리타입 boolean 참조타입 객체의 주소를 참조하는 타입으로 배열, 열거, 클래스, 인터페이스 타입을 말한다. 배열타입 열거타입 클래스 인터페이스 기본 타입은 실제 값을 가지고 있고 참조타입은 메모리의 저장된 실제값의 주소값을 가진다. 기본타입의 비교는 실제 값이 같은지를 판단하지만 참조타입은 동일한 객체(객체의 주소값)를 참조하는지 비교한다. 2022. 4. 25.
[JAVA] NaN, Infinity 5 / 0 -> ArithmeticException 발생 5 % 0 -> ArithmeticException 발생 5 / 0.0 -> Infinity 5 % 0.0 -> NaN 수학에서는 0으로 나누는 것은 불가능하다. 자바에서도 정수형 0으로 나누는 것을 불가능하지만 부동소수점 타입으로 0.0을 넣으면 계산은 가능하다. Infinity, NaN 이후에 계산후 모두 같은 값이 나오므로 이값들은 예외처리를 해야한다. 2022. 4. 25.
[JAVA]정확한 계산 public class Apple{ public static void main(String[] args) { int apple = 1; double priceUnit = (double) apple/10; int num =7; double result = apple - num*priceUnit; System.out.println(result); } } 사과 한개를 10개의 조각으로 나누고 그것을 7명에서 나눠줄때 남은 사과의 양을 출력하는 프로그램이다. "사과 한개 - 조각의 크기 X 사람의 수 = 남은 사과의 양" 이라는 수식이 나오며 이를 적용했다. 이때 우리가 기대하는 값은 0.3이지만프로그램에서는 0.29999999999999993라는 값이 나온다. 자바에서 부동소수점 타입(double, float.. 2022. 4. 25.