JAVA(6)
-
[til_211127][java] 상속
✔ java.lang.Object 클래스는 모든 클래스들의 최상위 조상 클래스로, 컴파일러에 의해 자동으로 상속이 이루어진다. 따라서 어떤 클래스를 생성할 때 예를 들어 class Name extends Object { } 에서 extends Object를 사용자가 따로 써주지 않아도 컴파일러가 알아서 부모 클래스인 Object 클래스를 호출해온다. 또한 예를 든 Name 클래스의 객체를 만들 때 메소드 호출 시 따로 만들어놓지 않았는데 리스트로 띄워주는 메소드들은 모두 컴파일러가 자동 호출한 Object 조상 클래스의 메소드들인 것이다. ✔ 서브클래스 생성자 작성시 슈퍼클래스의 생성자를 선택할 수 있다. main코드에서 서브클래스 호출시 서브클래스 생성자를 호출하고 자동으로 슈퍼클래스 생성자까지 호출하..
2021.11.27 -
[til_211126][java] 객체배열
�오늘의 궁금증 ↓더보기 클릭 더보기 �오늘 궁금증: * 왜 main 이 아닌 클래스에서 배열을 생성하면 오류가 발생하는가? 여기서 오류는,,, 직접적인 오류가 아니라 약간 다른 데서 이상하게 튕기듯이? 오류가 나타남. 이렇게 생성한 두줄 전체에 빨간 줄이 그어지는 오류가 아니라, 저렇게 ;에 빨간 줄이 그어짐.. 어떻게 생성때문인 줄 알았냐면 배열 생성하는 저 두 줄을 지우면 또 빨간 줄 사라짐.사실 이게 정확한 원인이 뭔지는 모르겠다.main이 아닌 클래스에서는 배열을 생성하지 못하는 건가...? 해결 ☞ 일단 객체 배열의 개념을 완전 오해함. 객체 배열은 객체 여러개를 배열로 저장하는 것이지, 배열을 지닌 객체를 만드는 것이.. 아니다.. 근데 그렇다 하더라도 그럼 클래스를 만들 때 그 안에 일반 ..
2021.11.26 -
[til_211125][java] java API 활용한 예제 - Math.random()과 .substring()
이번 주는 java API, 그 중에서도 string관련 메소드들을 활용하는 실습을 했다. 문제 1) 60, 70, 80, 100 의 숫자 중에서 임의의 숫자를 받아오는 메소드 만들기 사실 지난 시간 수업을 제대로 안 들어서 random메소드를 활용하는 방법을 잘 모른 상태에서 프린트물에 적혀있는 것만 보고 나름 머리를 굴린다고 굴리고 키보드 두들겨 봤는데: int speed_limit() { while (true) { // while문 무한루프 문제 발생 !! int i = (int)Math.random()*100+1; if (i==60 || i==70 || i==80 || i==100) { return i; } } } ** 오답임. 아니 글쎄 프린트문으로 출력을 해봐도 아무것도 출력이 안 되는 것이다..
2021.11.25 -
[til_211123][java] 메시지패싱
용이 성을 공격하는 메시지패싱 class Castle { private int strength; void set_st (int st) { if (st> 성의 내구력은10 용의 화력은5 성의 내구력은5 성의 내구력은0 성이 무너진다 ~ 성의 내구력은-5 ✔ 메시지패싱의 두 단계: 1) 상대 객체를 인자로 전달 2) 상대 메소드 호출 ✔ 캡슐화: 외부로부터의 접근, 임의 변경 등의 위험으로부터 보호하기 위해 차단.. by 클래스를 만드는 것 자체가 캡슐화 과정. 객체(=클래스의 모양대로 만들어진 실체)의 멤버들 (메소드와 필드) 를 외부에서 직접 접근하지 못하도록 접근지정자 private을 이용. 객체 외부에서 비공개 멤버 (private 멤버) 접근하려면 공개된 메소드를 통해 접근. 여기서 공개된 메소드를..
2021.11.23 -
[til_211123] [java] 입력받은 문자 중 공백을 ','로 대체하는 클래스
융합프로그래밍 강의교안 예제4-8: 인자로 배열이 전달되는 예 > import java.util.Scanner; class Char { String str; char a[]; void printCharArray(String str) { this.str = str; a = new char[str.length()]; /// str.length() : 문자열 길이 !!! for (int i=0; i
2021.11.23 -
[til_211103] [java] 캡슐화와 접근지정자
캡슐화 캡슐화란, 1) 객체를 캡슐로 싸서, 2) 내부를 볼 수 없게 하는 것 (=> 외부의 접근으로부터 객체를 보호하는 것) 이는 재사용성과 생산성에 도움을 준다. 자바에서는 클래스를 만드는 것 자체가 캡슐화 작업이다. 객체 모양의 틀을 선언하는 것, 즉 클래스를 만드는 것이 캡슐화로, method (멤버 함수) 와 field (멤버 변수)가 클래스라는 캡슐 안에 구현되어 외부로부터 보호받는다. class를 만들 때 field를 private으로 설정해두고, field값을 외부에서 접근하거나 변경하고 싶다면 메소드를 통해서만 가능하다. 값을 보여주거나 변경할 수 있는 메소드를 만들어두고, 그 메소드에 '음수는 입력불가'라든지, '두 글자 이상 입력 가능' 이라든지 내가 필요로 하는 제한사항들을 걸어두어..
2021.11.03