반응형

java 78

자바 클래스

자바 세상은 클래스와 객체로 이루어져 있다. 그만큼 클래스와 객체라는 개념은 중요하다.   위와 같은 코드는 한가지 문제점이 있다.학생이 추가되면 추가될 수록 일일히 하나씩 만들어야 한다는 점이다.이러한 문제를 배열을 사용하여 사용하여 다음과 같이 간소화 시킬 수 있다.    하지만 이와 같이 코드를 최소화 시킨 것도 문제점이 존재한다.한 학생의 데이터가 studentNames[], studentAges[], studentGrades[]라는 3개의 배열에 나누어져 있다.따라서 데이터를 변경할 때 매우 유의해야 한다. 컴퓨터 입장에서는 문제 없지만 사람이 관리하기에는 좋은 코드가 아니다. 이러한 문제점을 클래스를 도입하여 해결할 수 있다. class 키워드를 사용하여 학생 클래스를 정의한다. 학생 클래스는..

공부/Java 2024.08.27

자바 메서드 오버로딩

자바는 메서드의 이름 뿐만 아니라 매개변수 정보를 함께 사용해서 메서드를 구분한다. 따라서 다음과 같이 이름이 같고, 매개변수가 다른 메서드를 정의할 수 있다. 매개변수가 다른 메서드를 여러개 정의하는 것을 메서드 오버로딩이라 한다. 오버로딩은 번역하면 과적인데, 과하게 물건을 담았다는 뜻이다. 따라서 같은 이름의 메서드를 여러개 정의했다고 이해하면 된다.주의) 매개변수가 같고 반환 타입이 다른 경우는 인정을 하지 않는다 *메서드 시그니처 = 메서드 시그니처는 자바에서 메서드를 구분할 수 있는 고유한 식별자나 서명을 뜻한다. 메서드 시그니처는 메서드의 이름과 매개변수 타입으로 구성되어 있다. 메서드 이름이 같아도 메서드 시그니처가 다르면 다른 메서드로 간주한다.    작은 크기에서 큰 크기로의 자동 형변..

공부/Java 2024.08.26

자바 메서드와 형변환

메서드를 호출할 때도 형변환이 적용될 수 있다. 메서드 호출과 명시적 형변환, 자동 형변환을 보자. 메서드를 호출하는데 인자와 매개변수 타입이 맞지 않다면 어떻게 해야할까? int보다 상대적으로 double이 크기 때문에 명시적 형변환을 진행해주어야 한다. 하지만 반대의 경우는 자동으로 형변환이 가능하다. 메서드를 호출할 때는 전달하는 인수의 타입과 매개변수의 타입이 맞아야 한다. 단 타입이 달라도 자동 형변환이 가능한 경우에는 호출할 수 있다.

공부/Java 2024.08.26

자바 메서드

위와 같은 계산은 둘 다 변수를 두개 선언하고 어떤 연산을 수행하는지 출력하고, 두 변수를 더해서 결과를 구하게 된다. 만약 프로그램의 여러곳에서 이와 같은 계산을 반복해야한다면, 같은 코드를 여러번 반복해서 작성해야하할 것이다. 더 나아가 부분 수정이 이루어지면 전체의 코드를 수정해야하는 문제점도 발생하게 된다.  이러한 문제를 깔끔하게 해결하기 위해 메서드를 사용한다.함수를 만들어 두고, 필요한 입력 값을 넣어서 해당 함수를 호출하면 된다. 그러면 계산된 결과가 나온다. 함수는 마치 블랙박스와 같다. 함수를 호출할 때는 외부에서는 필요한 값만 입력하면 된다. 그러면 계산된 결과가 출력된다. 같은 함수를 다른 입력 값으로 여러번 호출할 수 있고, 한번 정의해두면 계속해서 재사용할 수 있다.  publi..

공부/Java 2024.08.26

자바 Scanner

자바는 System.in을 통해서 사용자의 입력을 받을 수 있다.그런데 자바가 제공하는 System.in을 통해서 사용자 입력을 받으려면 여러 과정을 거쳐야해서 복잡하고 어렵다.자바는 이런 문제를 해결하기 위해 Scanner 라는 클래스를 제공한다. 이 클래스를 사용하면 사용자 입력을 매우 편리하게 받을 수 있다.  scanner를 통해 입력받고 출력하는 예제이다.문자열, 정수 실수 모두 입력을 받고 출력할 수 있다.**타입을 다르게 입력하면 type의 미스매치가 일어나서 에러가 발생한다.   이러한 에러가 발생하기에 주의가 필요하다.   위는 정수 두개를 입력받아 합을 구하는 예제이다.   위의 예제는 정수 두개를 입력받아 크기를 비교하는 예제이다.

공부/Java 2024.08.22

자바 형변환

박은 범위에서 큰 범위로는 당연히 값을 넣을 수 있다ex) in -> long -> double 하지만 큰 범위에서 작은 범위는 다음과 같은 문제가 발생할 수 있다1. 소수점 버림2. 오버플로우 int   자바는 기본적으로 작은 범위에서 큰 범위로의 대입은 허용한다. 큰 그릇은 작은 그릇에 담긴 내용물을 담을 수 있다.  * 하지만 결국 대입하는 형을 맞추어야 하기 때문에 개념적으로는 캐스팅이 되어 들어가는것이다. 사실 이런 코드이다 괄호가 생략되는 것이라고 볼 수 있다.  반대로 큰 범위에서 작은 범위의 대입은 명시적 형변환이 필요하다.    명시적 형변환을 해주지 않으면 incompatible types의 에러가 발생한다.     캐스팅을 해주면 소숫점이 버려지고 int형으로 변경이 된다. int는 ..

공부/Java 2024.08.22
반응형