목록전체 글 (181)
헬린코린이
상속에 대해서 이야기하겠다 상속은 쉽게 말해 우리가 말하는 그 상속하고 비슷하다고 생각하면 된다. 상속에는 부모 클래스와 자식 클래스가 있다. 부모 클래스가 자식 클래스에게 상속해주는 것이다. 하는 방법은 코드를 보겠다. public class Test01 { public static void main(String[] args) { Student s1 = new Student(); s1.info(); } } class Person{ String name = "홍길동"; } class Student extends Person{ void info() { System.out.println(super.name); } } 간단한 코드를 만들어 봤다. 자식 클래스가 부모 클래스를 상속받는 방법은 클래스명 뒤에 ex..
객체 배열에 대해서 알아보겠습니다. 객체 배열은 말 그대로 객체(인스턴스)를 배열로 만든 것이다. 배열의 전제조건으로는 1. 관련된 데이터인가 2. 같은 자료형인가 3. 개수가 정확히 정해져있나 이 조건만 맞으면 객체를 배열로 만들 수 있다. Player p1 = new Player(); Player p2 = new Player(); Player p3 = new Player(); Player p4 = new Player(); Player p5 = new Player(); Player p6 = new Player(); Player p7 = new Player(); 7개의 인스턴스를 생성하였다 만일 더 필요하다면 저걸 더 복사 붙여넣기 하면 되겠지만 더 쉽게 배열로 만들어버리면 된다 관련된 데이터이고 같은 ..
우선 객체를 만들 때 클래스가 정의되어 있어야 한다. 클래스는 데이터들을 생성하기 위해 미리 구조를 선언(정의) 한 것으로 우리가 줄곧 사용해왔던 main메서드를 이루고 있는 것도 하나의 클래스이다. 클래스를 정의하면 객체를 main메서드에서 호출해야 하는데 호출하는 방식은 Car c1 = new Car(); Car라는 클래스를 정의했다고 가정해보자 그렇다면 그 클래스를 호출하는 방법은 이런 식이다. 왜 이 말을 하냐면 new뒤에 Car가 생성자를 호출하는 것이기 때문이다. 클래스를 봐보자 Class Car{ int door; String color; void info(){ System.out.println(color+"색에 문"+door+"이 달려있다"); } Car(){ } } 이 클래스의 메서드를 ..
객체지향 언어에 대해서 알아보겠다. 자바에서 가장 중요한 부분이다. 자바에서 객체지향에 대해서 배우지 않는다면 그것은 나쁘다 우선 객체란 보고 만질 수 있는 것, 지성적으로 이해할 수 있는 것, 생각이나 행동이 추구하는 바를 말한다. 쉽게 말해 우리 눈으로 볼 수 있는 걸 객체라고 한다. 객체지향 언어의 특징으로는 크게 4가지로 볼 수 있는데 1. 추상화 불필요한 정보는 숨기고 중요한 정보만을 표현하여 프로그램을 간단히 만드는 것을 말합니다. 자동차를 예로 들자면, 공통적으로 중요한 부분인 엔진, 브레이크, 연료 등에 대한 기능을 뽑아내는 것을 의미합니다. 2. 상속 특정 클래스가 가진 속성, 동작을 다른 클래스에서 그대로 사용할 수 있습니다. 이미 작성되어 있는 클래스를 상속하여 사용함으로써 코드를 재..

발생원인: Java 프로그램 또는 JVM(Java Virtual Machine)에서 작성되는 모든 스레드에는 Java 힙과 관계가 없는 고유 스택 공간이 있습니다. 애플리케이션에 사용 가능한 전체 스택 크기는 시작 동안 판별되고 해당 값은 포함할 수 있는 스레드 수를 판별하며 이를 초과하면 다음과 같이 java.lang.StackOverflowError가 발생합니다 해결 방법: 해당 변수의 크기를 stack보다 작게 만들거나, 함수 무한 호출 막기

원인: 메서드에 스캐너를 정의하고 close하고 메인 메서드에서 이를 실행했더니 에러가 남 해결 방법: 메서드를 따로 정의 할 거면 close()를 호출한 다음에 선언하자 똑같은 원인이고 해결방법도 위와 같은 방법으로 하니 해결됨

오버 로딩이란 예를 들어 덧셈을 필요로 하는 2개의 매개변수를 가진 메서드(add)를 정의해서 main메서드에서 호출했다고 가정해보자 어떤 사람은 int+int를 원하는 분이 있었는데 어떤 사람은 double+double을 원하는 사람이 생겼다 그래서 double+double을 가진 add2메서드를 정의했고 또 어떤 사람은 int+int+int덧셈을 필요로 하는 사람이 생겨 int+int+int덧셈 메서드를 add3으로 만들어줬다 이런 방법으로 한 100여 가지를 만들었다고 가정해보자 호출을 할 때 어떤 메서드를 필요로 하는지 혹시 호출하는 사람은 알 수 있을까? 절대 모른다 뭐 기억력이 좋아서 알 수도 있겠지만 다른 사람이 코드를 사용한다고 했을 때 하나하나 올려서 변수명을 확인하고 출력해야 할 것이다..
메서드 3요소에는 input, output, 기능 이 있는데 =>메서드의 시그니처이다. 메서드에는 입력 x 출력 x 입력 o 출력 x 입력 x 출력 o 입력 o 출력 o 이 있다 이게 무슨 말이냐면 코드를 보면서 설명하겠다. public static void method1() {} public static void method2(int a) {} public static int method3() { return 3;} public static int method4(int a) {return a;} 우선 입력x 출력 x인 메서드를 보시면 입력 즉 매개변수값도 없고 반환값이 void인 걸 볼 수 있다 이 void를 번역하면 빈 공간,공허함 뭐 이런 식으로 번역이 된다. 즉 반환할게 없다이다 public st..
배열이란 - 동일한 자료형(Data Type)의 데이터를 연속된 공간에 저장하기 위한 자료구조이다. 즉, 연관된 데이터를 그룹화하여 묶어준다고 생각하면 된다. 배열의 장점에는 연관된 데이터를 저장하기 위한 변수의 선언을 줄여주며, 반복문 등을 이용하여 계산과 같은 과정을 쉽게 처리할 수 있다. 배열을 선언하는 방법은 타입[] 변수명 = new 타입[배열 크기] 변수[0] = 값; 변수[1] = 값; 이 방법과 타입[] 변수명 = {값1,값2,값3}; 바로 선언과 동시에 초기화를 할 수 있다. 변수의 선언은 이렇게 하고 다음은 변수의 꽃이라고 할 수 있는 length를 알아보겠다. int[] data = new int[5]; Random rand = new Random(); for(int i = 0; i
첫 번째 프로젝트 주사위를 굴려 게임을 만들었다. package firstproject; import java.util.*; public class teammadedicegame { public static void main(String[] args) { int tScore = 0; // 총점 int ch = 0; int cnt = 0; // 더블 횟수 int round = 1; int rRound = 1; // 잔여라운드 // 게임 규칙 설명 System.out.println("주사위 게임에 오신 여러분 환영합니다.~"); delay(1500); //메서드 하나 정의 1.5초간 딜레이. System.out.println("저는 이 게임에 진행자입니다."); delay(1500); System.out.p..