반응형

자바 59

자바 참조형과 메서드 호출 활용

위의 initStudent를 생성후에 초기화할 수 있다 생성과 함께 초기화는 어떻게 진행할까? createStudent라는 Student 메서드를 새로 생성하였다.이 Student 메서드는 매개변수로 이름, 나이, 점수를 받고 Student라는 인스턴스를 생성하여 그 인스턴스에 이름, 나이, 점수를 집어넣은 후 return student를 통해 참조값을 반환한다.그 참조값은Student student1 및 Student student2에 대입되고 그 참조값을 가지고 printStudent를 통해 해당 참조값에 대한 이름, 나이, 점수를 알 수 있게 된다. 이해는 되는데 너무 어렵다.   여지껏 지역 변수들은 수동으로 초기화를 진행해주어야 했다. 초기화를 하지 않으면 에러가 터지기도 하였다. 그러나 멤버변..

공부/Java 2024.08.28

자바 클래스에 배열 도입하기

https://surrealcode.tistory.com/35 자바 클래스자바 세상은 클래스와 객체로 이루어져 있다. 그만큼 클래스와 객체라는 개념은 중요하다.   위와 같은 코드는 한가지 문제점이 있다.학생이 추가되면 추가될 수록 일일히 하나씩 만들어야 한surrealcode.tistory.com 기존에 있던 코드는 깔끔하지 않다.클래스를 도입하였지만 새로운 학생이 추가될 때마다 sout을 다시 찍어줘야하는 번거로움이 있기 때문이다.이러한 불편한 점을 해결하기 위해 배열에도 객체를 보관할 수 있다.  배열에 student를 담은 모습이다.여기서 유의할 점은 Student students = new Student[2]; 이다.여기는 Student 타입의 변수를 2개 보관할 수 있는 사이즈 2짜리의 배열을..

공부/Java 2024.08.27

자바 클래스

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

공부/Java 2024.08.27

자바 메서드 오버로딩

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

공부/Java 2024.08.26

자바 메서드와 형변환

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

공부/Java 2024.08.26

자바 메서드

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

공부/Java 2024.08.26

김영한의 자바 입문 자바 배열 문제 1편

1. 배열을 사용하여 문제를 개선하기   향상된 for문으로도 풀 수 있다.   2. 배열의 입력과 출력사용자에게 5개의 정수를 입력받아서 배열에 저장하고, 입력 순서대로 출력하는 예제이다.    3. 사용자에게 5개의 정수를 입력받아 배열에 저장하고, 입력받은 순서의 반대인 역순으로 출력하자.   4. 사용자에게 5개의 정수를 입력받아서 이들 정수의 합계와 평균을 계산하는 프로그램을 작성하자.    5. 이전 문제에서 입력받을 숫자의 개수를 입력받도록 개선해보자.

공부/Java 2024.08.25

자바 배열 2 (2차원 배열)

https://surrealcode.tistory.com/25 자바 배열 1배열이 필요한 이유는 같은 타입의 변수를 반복해서 선언하고, 반복해서 사용하는 문제를 해결하는 것이 바로 배열이다. 위와 같이 학생 5명의 점수를 출력하는 코드를 짠다고 가정하자.위의surrealcode.tistory.com 처음에 배웠던 배열은 단순히 순서대로 나열만 했던 배열이다. 이런 배열을 1차원 배열이라 한다.이번에 학습할 2차원 배열은 말 그대로 차원이 하나 더 추가된 배열이다. 2차원 배열은 int[][] arr = new int [2][3] 와 같이 선언하고 생성한다. 그리고 arr[1][2]와 같이 사용하는데, 먼저 행번호를 찾고 그 다음에 열 번호를 찾는다.행은 영어로 row 열은 영어로 culumn이라 한다. ..

공부/Java 2024.08.25
반응형