(2021.03.22) 더보기 객프 과제를 하는 중 char 형을 입력받는 거에서 좀 시간이 걸렸다. 자꾸 빨간 밑줄이 그어지길래 그냥 String 으로 바꿨더니 또 char 로 바꾸라고 오류뜬다.. Scanner 를 통해서 문자열을 입력받고, charAt(0) 를 통해 서입력받은 문자열의 첫번째 문자를 꺼내오는 방식으로 코드를 짜야한다. // 예제 Scanner scan = new Scanner(System.in); String c1; char c2; c1=scan.next(); c2=c1.charAt(0);
(2021.02.27) 더보기 자바도 초심을 잃고... 한동안 공부를 안했다... 정신을 차리고 보니 개강이 코앞이다... | 인터페이스 인터페이스는 일종의 추상클래스임 추상클래스처럼 추상메서드를 갖지만, 추상화정도가 더 높음 오직 추상 메서드와 상수만을 멤버로 가질 수 있음 인터페이스의 작성 인터페이스는 클래스를 작성하는 것과 같은데 class 대신 interface를 사용함 interface 인터페이스 이름 { public static final 타입 상수이름 = 값; public abstract 메서드이름 (매개변수목록); } 인터페이스의 멤버는 일반 클래스의 멤버와 다르게 제약사항이 있음 1. 모든 멤버변수는 public static final 이어야함. 생략가능 2. 모든 메서드는 public ..
(2021.02.06) 더보기 지난주 스터디랑 순서를 헷갈려서 뒤죽박죽이다... 상속이 이번준데.. 상속을 저번주에 해버렸다.. 접근 제어자와 제어자의 개념을 공부해보니 지난주에 풀었던 자바 문제가 떠오른다. static 을 써주니까 오류가 해결되었던게 생각이 난다.. | 제어자 : 클래스, 변수 또는 메서드의 선언부에 사용하여 부가적인 의미를 부여함 접근 제어자: public, protected, default, private 그 외: static, final, abstract, native, transient, synchronized, volatile, strictfp 접근 제어자는 한번에 하나만 선택해서 사용할 수 있음 1. static - 클래스의 , 공통적인 클래스 변수는 인스턴스에 관계없이 같..
(2021.02.01) 더보기 자바 스터디장님께서 내주신 클래스 만들기 예제 3개를 풀어보았다...!! 나의 소스코드와 실행결과 나의 소스코드와 실행결과 나의 소스코드와 실행결과 Rectangle 클래스에 static 을 붙여주면 해결된다...
(2021.02.01) 더보기 약속 과다로 인해... 이번주 스터디는 굉장히 밀렸다... 빨리 정리하고 문제 풀어야지.. 참고도서: 자바의 정석 | 패키지 : 클래스의 묶음 패키지에는 클래스 또는 인터페이스를 포함시킬 수 있고, 서로 관련된 클래스들끼리 그룹 단위로 묶어 놓음으로써 클래스를 효율적으로 관리할 수 있음 - 하나의 소스파일에는 첫 번째 문장으로 단 한번의 패키지 선언만을 허용함 - 모든 클래스는 반드시 하나의 패키지에 속해야함 - 패키지는 점을 구분자로 해서 계층구조로 구성할 수 있음 - 패키지는 물리적으로 클래스 파일을 포함하는 하나의 디렉토리임 package 패키지명; 패키지명은 클래스명과 구분하기 위해 소문자로 하는 것을 원칙으로 함 | import 문 일반적인 소스파일(.java)의 ..
(2021.01.31) 더보기 이번주는... 외출할 일이.. 많아.. 새벽에 조금씩 공부해서 올리고 있다...ㅎㅎ 다음주부터는 더 열심히..해야지.. 참고도서: 자바의 정석 | 오버라이딩 조상 클래스로부터 상속받은 메서드의 내용을 변경하는 것 (※오버로딩은 기존에 없던 새로운 메서드를 정의하는 것) 오버라이딩의 조건 자손 클래스에서 오버라이딩하는 메서드는 조상 클래스의 메서드와 1. 이름이 같아야함 2. 매개변수가 같아야함 3. 반환타입이 같아야함 조상 클래스의 메서드를 자손 클래스에서 오버라이딩할 때 1. 접근 제어자를 조상 클래스의 메서드보다 좁은 범위로 변경할 수 없음 2. 예외는 조상 클래스의 메서드보다 많이 선언할 수 없음 3. 인스턴스메서드를 static 메서드로 또는 그 반대로 변경할 수 없..
(2021.01.30) 더보기 이번주 자바 스터디에서는 객체지향언어를 이어서 공부했다. 자바의 정석 책의 7장에 해당하는 부분을 읽었다. 양이 많아서... 정리하기가 벅차다... 정리하기 싫다 참고도서: 자바의 정석 | 상속 : 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것 자료구조에서 부모노드와 자식노드 개념과 비슷하다고 생각하면 된다. 이렇게 Parent 클래스에 int age; 를 선언하면 자동적으로 age 라는 멤버변수가 추가된다. 이렇게 Child 클래스에 play 메서드를 추가하면 Parent 클래스는 아무런 영향을 받지않는다. 포함관계 포함관계: ~은 ~을 가지고 있다 상속관계: ~은 ~이다 ▷ 생성자와 초기화 블럭은 상속되지 않음. 멤버만 상속됨 ▷ 자손 클래스의 멤버 개수는 조상..
(2021.01.24) 백준 2869번: 달팽이는 올라가고 싶다 문제가 약간 초등학교 수학 문제집에 나올 법한 스타일이다... 어디선가 많이 풀어봤던 스타일... 풀이 정상에 올라갔을 때는 밤에 안미끄러진다는 점을 고려해야한다. 정상에 올라가는 것은 A만 따지니까 V-A가 음수 혹은 0일 경우가 정상에 도달했을 때이다. 그리고 정상에 도달하지 못했을 때에는 A만큼 올라갔지만 B만큼 다시 떨어지기 때문에 최종남은 미터는 V-(A-B) 이므로 V-A+B 가 된다. 내 소스코드 이거는 시간초과로 틀린 소스코드이다.... 하나는 for 문이고 하나는 while 문이다... 시간초과만 아니면 정답이었을 듯...하다.... 근데 시간초과가 아닌 답을 찾지 못했다..... 답이 뭐죠...???
(2021.01.23) 더보기 생각보다 6장의 내용이 많아서 3개로 나누어서 업로드 했다. 이번에는 변수, 메서드, JVM의 메모리구조에 대해 공부하고, 정리했다. 참고도서: 자바의 정석 | 변수 자바에서 변수는 클래스변수, 인스턴스변수, 지역변수 이렇게 3가지 종류가 있다. 변수의 종류를 결정하는 중요한 요소는 '변수의 선언된 위치'이다. 멤버변수를 제외한 것은 모두 지역변수, 멤버변수 중 static 이 붙은 것은 클래스변수, 멤버변수 중 static 이 붙지 않은 것은 인스턴스 변수이다. iv 와 cv 는 클래스 영역에 선언 되어있기 때문에 멤버변수이다. cv 는 static 이 붙어있기 때문에 클래스변수이고, iv 는 static 이 붙어있지 않기 때문에 인스턴스변수이다. lv는 메서드 영역에 선..
(2021.01.22) 파이썬 공부를 하면서 클래스랑 객체, 메서드에 대해서 조금 이해했었다. 자바의 정석 책에서도 가장 중요하게 다뤄지는 부분같다. 6장과 7장으로 나누어져 있는데 이번주에는 6장을 공부해보았다! book.naver.com/bookdb/book_detail.nhn?bid=10191151 Java의 정석 자바의 기초부터 실전활용까지 모두 담다!자바의 기초부터 객제지향개념을 넘어 실전활용까지 수록한『JAVA의 정석』. 저자의 오랜 실무경험과 강의한 내용으로 구성되어 자바를 처음 배우는 book.naver.com 참고도서: 자바의 정석 | 객체지향언어 객체지향언어는 기존의 프로그래밍 언어에 몇 가지 새로운 규칙을 추가한 형태의 언어이다. 코드의 재사용성이 높다. 코드의 관리가 편하다. 신뢰성..
(2021.01.17) 배열의 내용이 생각보다 많아서 두개로 나누어서 정리했다. 문자열을 담을 수 있는 string 배열과 다차원 배열을 공부했다. book.naver.com/bookdb/book_detail.nhn?bid=10191151 Java의 정석 자바의 기초부터 실전활용까지 모두 담다!자바의 기초부터 객제지향개념을 넘어 실전활용까지 수록한『JAVA의 정석』. 저자의 오랜 실무경험과 강의한 내용으로 구성되어 자바를 처음 배우는 book.naver.com 참고도서: 자바의 정석 String 배열 String 배열의 선언과 생성 String[] 배열이름 = new String(문자열 개수); String 배열의 초기화 String 배열은 배열과 마찬가지로 초기화할 수 있다. 특별하게 String클래스..
(2021.01.17) 자바 커맨드 라인을 통해 입력받기 (이클립스) 화면을 통해서 사용자로부터 값을 입력받을 수 있는 방법 중 하나이다. 커맨드라인을 통해 입력된 문자열은 String 배열에 담겨서 해당 클래스의 main메서드의 매개변수(args)에 전달된다. 이 상태로 그냥 Run 해주면 이렇게 나온다. 이클립스에서 커맨드 라인을 통해 입력받기 위해서는 Run > Run configuration 을 눌러주면 Run configurations 라는 창이 뜨는데 Arguments 를 눌러주고 Program arguments에 원하는 내용을 입력하면 된다. 원하는 내용 입력하고 Run 눌러주면 콘솔창에 이렇게 출력되는 것을 볼 수 있다!!
(2021.01.17) 이번주 스터디에서는 배열을 공부했다. 이것도 C언어랑 매우 비슷해서 공부하는데 어렵지는 않았다. 이 책에서 배열 설명이 정말 잘 되어있는 것 같다. book.naver.com/bookdb/book_detail.nhn?bid=10191151 Java의 정석 자바의 기초부터 실전활용까지 모두 담다!자바의 기초부터 객제지향개념을 넘어 실전활용까지 수록한『JAVA의 정석』. 저자의 오랜 실무경험과 강의한 내용으로 구성되어 자바를 처음 배우는 book.naver.com 참고도서: 자바의 정석 배열 (array) : 같은 타입의 여러변수를 하나의 묶음으로 다루는 것 배열의 선언과 생성 // 배열 선언 타입[] 변수이름; 타입 변수이름[]; 배열을 선언하는 것은 생성된 배열을 다루기 위한 참조..
(2021.01.17) 자바의 정석으로 공부하던 중 예제 코드를 실습해보던 중에 오류가 발생했다. 문제상황 예제 5-3/ch5/ArrayEx3.java 인데 이런 오류가 나온다. java.lang.ArrayIndexOutOfBoundsException 이 오류는 배열의 인덱스가 벗어나는 값이 있어서 나타나는 오류이다. 오류해결방법 예제 코드에서 이 부분을 보면, arr배열은 길이가 5이기 때문에 arr[4]까지만 존재하는데 for 문에 i가 newarr의 길이-1까지 들어가기 때문에 arr[5]부터는 인덱스값이 벗어나버린다. 그래서 이런 오류가 발생한 것이다. 이 오류를 해결하기 위해서는 인덱스값이 벗어나지 않도록 해주어야한다. 이렇게 바꿔주면 오류가 해결되는 것을 알 수 있다!! (책이 틀린 줄 알았는..
(2021.01.16) 백준 2739번: 구구단 풀이 이건 어느 언어를 공부하던간에 한 번씩 꼭 나오는 필수 예제다. 반복문 필수!! 반복문 이용해서 만들어주면 된다. 내 소스코드