본문 바로가기

전체 글

(192)
JAVA(2022.05.11)-내부 클래스 내부클래스 why? -외부클래스에 쉽게 접근할 수 있다. -코드가 더욱 간단해진다. -서로 관련 있는 클래스를 논리적으로 묶어서 코드의 캡슐화를 증가시킨다. 1.중첩클래스(인스턴스 클래스) - 외부클래스의 멤버변수 선언위치에 선언한다. - 외부클래스의 인스턴스 멤버들과 사용할 목적으로 선언 ex) public class InnerExam1{ class Cal{ int value = 0; public void plus(){ value++; } } public static void main(String args[]){ InnerExam1 t = new InnerExam1(); InnerExam1.Cal cal = t.new Cal(); cal.plus(); //생성된내부클래스 객체에서 레퍼런스를 통해 내부클..
프로그래머스 연습문제<짝수와 홀수> 문제 num은 int 범위의 정수다. num이 짝수면 "Even" 홀수면 "Odd" 출력 처음에 계속 테스트 2개가 틀렸다고 나왔다.그래서 대체 왤까?하고 문제를 계속 다시 읽어보니 조건에 num은 int 범위의 정수입니다 라는 문장이 눈에 들어왔다. 즉, 음수도 범위의 포함된다는 말. 그래서 else if문을 추가해서 구현해주었고 정답을 구해냈다.
Algorithm(2022.05.10)-Algorithm이란? Algorithm이란? - 문제를 해결하기 위한 것으로, 명확하게 정의되고 순서가 있는 유한 개의 규칙으로 이루어진 집합 if구조문 ex) 3개의 값을 받고 최댓값 찾기 import java.util.Scanner; class FindMax{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); System.out.println("값을 입력받겠습니다"); int a = sc.nextInt(); int b = sc.nextInt(); int c = sc.nextInt(); int max = a; if (b>max) max= b; if (c>max) max =c; System.out.println("최대값은" + max + ..
JAVA-(2022.05.10)-interface의 static 메소드 static메소드 - interface에서 static메소드를 통해 메소드를 구현할 수 있다. - 재정의가 불가능하다(static이니깐 당연하다는 맥락으로 이해하면 될듯). - 접근 제어자는 항상 public이며 생략할 수 있다. - 인터페이스를 직접 참조하여(레퍼런스) 사용해야만 한다. 코드예시) 1) static 메소드 예시 public interface Calculator { public int plus(int i, int j); public int multiple(int i, int j); default int exec(int i, int j){ return i + j; } public static int exec2(int i, int j){ //static 메소드 return i * j; } }..
JAVA(2022.05.09)- interface의 default메소드 default메소드 - interface에서 default메소드를 통해 메소드를 구현할 수 있다. - implements한 클래스에서 재정의 할 수 있다 코드예시) 1) default메소드 예시 public interface Calculator { public int plus(int i, int j); public int multiple(int i, int j); default int exec(int i, int j){ //default로 선언함으로 메소드를 구현할 수 있다. return i + j; } } //Calculator인터페이스를 구현한 MyCalculator클래스 public class MyCalculator implements Calculator { @Override public int p..
프로그래머스 연습문제 <약수의 합> 문제 n>12 return 28 n>5 return 6 약수의 모든 합을 더해서 출력하는걸 구현해라 알고리즘으로 구현하고 싶었는데, 내일 알고리즘 책이 오면 알고리즘에 대해 온전히 내 것으로 만들고 구현하기로 하였다. 그래서 일단 가장 기본적인 for문을 통해 구현해보았다. 1부터 입력받는 자연수 n까지 1씩 증가시켜가면서 n을 나눠보고 나머지가 0인 수들을 모두 다 더하여 return을 통해 코드를 구현하였다. class Solution { public int solution(int n) { int answer = 0; int sum = 0; for (int a=1; a
JAVA(2022.05.08)-클래스 형변환 , interface 클래스 형변환 - 부모타입으로 자식객체를 참조하였을 때, 자식객체의 메소드나 속성을 사용하려면 클래스 형변환을 해야한다. - 부모타입으로 자식객체를 참조할 때 묵시적 형변환 - 자식타입으로 부모객체를 참조할 때 명시적 현변한 public class Car{ public void engine(){ System.out.println("Car의 메소드"); } } public class Bus extends Car{ public void sound(){ System.out.println("빵빵."); } } public class BusExam{ public static void main(String args[]){ Car car = new Bus(); car.engine(); //car.sound(); //..
프로그래머스 연습문제 <하샤드 수> 문제 : 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요. 내가 작성한 코드(현재까지) class Solution { public boolean solution(int x) { boolean answer = true; int m = j/10 while(x%10 > 10){ int j = x%10; if (j+) } 그냥 if문을 쭈욱 써서 구현하면 바로 풀 수 있겠지만, 가독성이 좋은 코드를 작성하고 싶은데.. 그래서 숫자를 문자열로 split해서 해보았는데뭔가 while 문으로 ..