IT 137

[JAVA] 객체배열 - 포켓몬 프로그램

package pokemon;import java.util.Arrays;import java.util.Random;import java.util.Scanner;/*플레이어(트레이너)가 있습니다.트레이너는 1명당 최대 6마리의 포켓몬을 가질수있습니다.트레이너는 이름을 가질수있습니다.이름이 없는 트레이너는 '무명'으로 설정됩니다.트레이너는 소유한 모든 포켓몬들의 상태를 출력할 수 있습니다.소유한 포켓몬의 체력이 0이라면 [기절]을 출력해주세요.트레이너는 자랑을 할 수 있습니다.자랑하기를 실행하면 레벨이 가장 높은 포켓몬을 출력해주세요.레벨이 가장 높은 포켓몬이 2마리 이상이라면 경험치가 높은 포켓몬이 출력됩니다.경험치가 동일하면 먼저 저장된 포켓몬이 출력됩니다.트레이너는 대결을 할 수 있습니다.야생의 포켓몬..

IT/JAVA 2025.01.16

Java Section 08 : 메서드

01 메서드■ 메서드 : 클래스 안에서 특정 기능을 수행하기 위해 코드들을 따로 하나의 블록으로 묶어 놓은 집합-> 같은 코드의 반복적 사용을 피하고, 코드의 중복성을 제거하고, 코드의 재사용성을 높일 수 있다.=> "모듈화"      가독성, 유지보수성이 좋아진다.접근제한자 반환타입 메서드이름() { // 기능을 수행할 코드 }- 메서드는 또 다른 메서드에서 호출되어 사용됨- 메서드는 클래스 안에서 선언되므로 메서드를 사용하기 위해서는 해당 클래스의 객체부터 생성해야 한다.Book b = new Book();b.read();Book이라는 클래스에 선언된 read() 라는 메서드를 호출하려면 다음과 같이 작성 02 매개변수와 return1) 매개변수 : 특정 기능을 수행하기 위한 메서드는 기능 수행..

IT/JAVA 2025.01.15

[DAY 11] 캡슐화, 상속, 오버라이딩, Object 클래스

[캡슐화]: 외부에서 건들 수 없도록 함. ■  객체 외부인 메인에서 객체 내부에 너무 쉽게 접근할 수 없도록 직접 접근을 막는다. -> 클래스에서 멤버변수의 접근제한자를 public에서 private로 바꾸면 에러 발생! 객체 정보에 접근할 수 없게 된다 . ==> "하이딩(정보은닉)"   ■ "접근자", "접근제한자" ---> 크게 보면 private(전부 가리기), public(전부 공개)  ■ main은 반드시 public이 원칙. ■  "getter"  : 캡슐화된 (=정보가 은닉된, 정보가 하이딩된)  멤버변수의 값을 가져오고 싶을 때 사용 1)  getter는 가져올 수 있는 메서드이기 때문에 반드시 public으로 선언 2) getXXX - (get멤버변수명) 으로 이름 작성. 3) 리턴값..

IT/JAVA 2025.01.14

Java Section 07 : 클래스

01 객체 지향 프로그래밍■ 객체 지향 프로그래밍(OOP) : 객체를 중심으로 프로그램 구조를 설계하고 프로그래밍하는 것 ■ 객체 : 상태를 표현할 수 있고, 우리가 행동으로 실행할 수 있는 모든 것.=> 자바는 객체를 기반으로 한 대표적인 프로그래밍 언어!  02 객체와 클래스 ■ 클래스 : 자바의 기본단위. 하나의 클래스를 통해 여러 객체를 생성/사용 ■ 구조 : Cat c = new Cat();// 클래스명 객체명 = new 클래스명();=> "new 연산자"를 이용해서 객체 생성- 클래스는 보통 하나의 소스 파일에 하나의 클래스를 선언하지만 파일의 이름과 동일한 클래스만 public을 사용하고, 다른 클래스는 public을 제외한다면 2개 이상의 클래스를 하나의 소스 파일에 작성할 수 있다. 03..

IT/JAVA 2025.01.14

[Day 10] 객체와 생성자

class Student {■ 클래스 선언 시 public을 사용하지 않는 이유 : 클래스는 파일 이름과 동일해야 하기 때문에, main함수가 있는 클래스가 클래스 이름으로 인식되도록 해야한다. 그러나, 다른 클래스를 선언하면서 public을 붙여버리면 그 클래스를 인식하고 오류가 나기 때문에 public을 빼줘야 한다.class Student { String name; int score; // 멤버변수 == 필드, 속성, attribute, property }멤버변수는 다양한 이름으로 불린다. 오늘은 비슷한 생성자를 간략하게 만들고자 하는 "코드 간략화"에 대해 배웠다.생성자에서의 코드 간략화는, 가장 인자가 많은 생성자만 구현하고, 나머지 생성자는 인자가 가장 많은 생성자를 재사용하는 것이다.==>..

IT/JAVA 2025.01.13

자료구조와 함께 배우는 알고리즘 입문 [자바편] : 가우스 덧셈

가우스의 덧셈이란? 연속된 자연수의 합을 구하는 방법이다.일정한 정수가 순서대로 나열되었을 때 맨 앞 정수와 맨 뒤 정수를 더해나가는 것으로, for/while문보다 효율이 좋다. 예를 들어,1 2 3 4 5 6 7 8 9 10 이라는 숫자가 있다면,1+10, 2+9, 3+8, 4+7, 5+6 11을 총 5번 더한 것과 같다는 뜻이다. 맨 첫 항 + 맨 마지막 항을 더한 값이 총 5번 있고,2개씩 묶이므로 2n = 10 , 총 5를 곱하였다. 그러므로 공식은 (맨 첫 항 + 맨 마지막 항) / (항의 개수/2) 인 것이다!! package class01;public class Gauss { public static void main(String[] args) { // 연속되는 정수의 합을 구한다...

[Day 9] JAVA 객체

[객체지향프로그래밍(OOP)]---> 객체지향언어인 "JAVA" 를 사용 [객체지향언어] -> 메서드에게 주어(주체)가 생기는 것 [객체지향언어의 4가지 특징]1. 추상화 : 객체들의 공통되는 특징을 코딩할 수 있다! 객체들의 설계(틀)를 제공할 수 있다! 2. 정보은닉   1) 새로운 것을 개발할 때, 기존의 것을 그대로 활용할 수 있음    --> 기존의 것이 어떤 기능을 하는지만 알면 된다!    기존의 것에 대한 성분분석 X(알면 좋음)    2)  개발 이후 이슈가 발생했을 때, 접합부분만 검사하면 된다. --> 개발 시간 / 비용 단축 (함수를 쓰는 이유와 동일.) ==> 유지보수 용이 ★ 3. 상속 : 개발완료된 코드를 새로 개발하는 코드에 전부 가져올 수 있음 4.  다형성 : 함수(메서드..

IT/JAVA 2025.01.10

팀프로젝트(스터디) 질문 및 코드리뷰/피드백

1. 함수의 3요소 input, output, 기능 2. 함수화를 하는 이유 1) 중복이 없는 코드를 작성하고,2) 코드를 재사용하기 용이하며,3) 개발 시간이 단축되고,4) 개발 비용이 절감되며,5) 오류의 파급효과가 줄어든다. 3. MVC - VIEW가 하는 역할  VIEW가 사용자가 입력하는 정보를 안전하게 걸러서 컨트롤러에게 전해줘야 함 => 유효성 검사 메뉴 입력, 학생전체출력, 학생번호 입력, 학생 정보 출력, 추가할 학생 이름 입력, 학생 추가 완료 안내 등->> (뷰가 해야 하는 일(뷰의 기능)) 4. test() 라는 같은 이름을 가지는 함수를 또 선언할 수 있나?  YES- 오버로딩 : 매개변수와 인자 타입을 다르게 해서 같은 이름의 메소드를 여러 개 선언할 수 있다. (= 메서드 시그..

IT/코딩 스터디 2025.01.10

자료구조와 함께 배우는 알고리즘 입문 [자바편] : 중앙값 구하기

최소값, 최대값 로직은 이용해볼 일이 많은데 중앙값 로직은 처음 봐서 일단은 책을 보지 않고 직접 고민해보았다. 한 가지의 경우만 고려하려고 하지 않았고 최대한 많은 경우의 수를 떠올리려 노력했다. 1 ) 맨 처음에는 모든 수들의 평균값을 구해서 평균값과 가장 가까운 수를 구하면 중앙값이 되지 않을까 했는데 그렇지 않다는 것을 알게 되었다. 왜냐하면 예를 들어1, 2, 100 3개의 숫자가 있다.이들의 평균값을 구하면 34.33... 이라는 숫자가 나오고 34.33...은 가장 큰 100이라는 숫자에 가깝기 때문에 절대 중앙값이 될 수 없다. 즉, 평균은 중앙값이 될 수 없다. 2 ) 그러다가 생각한 점은, 앞에서 최댓값 알고리즘을 작성할 때 모든 경우의 수를 일일이 if문으로 검사하였는데, 중앙값도 i..