분류 전체보기

    230404 공부기록

    * 추상클래스 구체적이지 않은 클래스. - 정의하기 - 클래스 앞에 abstract 키워드를 이용해서 정의한다. - 미완성의 추상 메소드를 포함할 수 있다. - 일반 메소드도 가질 수 있다. - 추상 클래스는 인스턴스를 생성할 수 없다. - 추상 메소드 - 내용이 없는 메소드 , 즉 구현이 되지 않은 메소드 - 추상 메소드는 리턴 타입 앞에 abstract라는 키워드를 붙여야 한다. - 추상 클래스를 상속받는 클래스 생성 - 추상 클래스를 상속받은 클래스는 추상 클래스가 갖고 있는 추상 메소드를 반드시 구현해야 한다. - 추상 클래스를 상속받고, 추상 클래스가 갖고 있는 추상 메소드를 구현하지 않으면 해당 클래스도 추상 클래스가 된다. - 추상클래스의 사용용도 - 추상클래스의 사용용도는 추상 메소드가 포..

    230403 공부기록

    +Q. ) 메소드와 생성자.. 생긴건 비슷해 보이는데 뭐가 다를까? 메소드는 "함수"의 개념이다. 리턴타입이 없을 수도, 입력타입이 없을 수도, 입력타입과 리턴타입이 모두 없을 수도 있다. 상속받는 클래스도 메소드 사용가능 ok. 이름은 메소드의 성격이 보이게 직관적으로 짓는다. 생성자는 매개 변수는 존재할 수 있지만, 반환 값은 존재하지 않는다. 이름은 클래스와 같아야 하며 상속받는 클래스라 할지라도 생성자는 사용하지 못한다. 생성자의 역할은 클래스가 new에 의해 객체화될 때, 객체의 초기화를 위해 사용되는 코드. +Q. ) int number; 을 선언하고 따로 정의해주지 않았는데 어째서 0의 값을 가질까? 자바에서는 변수를 선언할 경우 초기화를 하지 않더라도 변수의 타입별로 기본값이 존재한다. -..

    230401 공부기록

    * 메소드 오버로딩 - 매개변수의 수, 타입이 다른 경우 동일한 이름으로 메소드를 여러 개 정의할 수 있다. * 생성자 오버로딩과 this - 매개변수의 수, 타입이 다른 경우 동일한 이름으로 생성자를 여러 개 생성할 수 있다. - this : 객체 자신을 가리키는 레퍼런스 변수, 자신의 객체에 접근할 때 사용. 주로 멤버변수와 매개변수의 이름이 동일할 때, 이를 구분하기 위해 사용. - this( )는 같은 클래스에서 생성자가 다른 생성자를 호출할 때 사용된다. - 주로 코드의 중복을 줄일 목적으로 사용됩니다. - this( )는 생성자 코드에서만 사용할 수 있습니다. - this( )는 생성자 코드안에서 사용될 때 첫번째 문장으로 다른 코드보다 가장 윗줄에 위치해야 합니다. * 패키지 - 패키지(pa..

    230331 공부기록

    * 생성자 public class Car { String name; int number; } public class CarExam { public static void main(String[] args) { Car c1 = new Car(); // Car() : 기본생성자 Car c2 = new Car(); } } - 모든 클래스는 인스턴스화 될 때 생성자를 사용한다. - 생성자는 리턴타입이 없다. - 생성자를 프로그래머가 만들지 않으면 매개변수가 없는 생성자가 컴파일할 때 자동으로 만들어진다. - 매개변수가 없는 생성자를 기본생성자라고 한다. - 생성자를 하나라도 프로그래머가 만들었다면 기본생성자는 자동으로 만들어지지 않는다. * 매개변수가 있는 생성자 public class Car2 { String ..

    230330 공부기록

    * 변수의 사용 범위 - 블록 바깥에서 선언 되어 있는 변수는 사용 불가능. - 메소드의 매개변수는 메소드 블록 바깥에서 선언되어 있기는 하지만 해당 메소드 블록 내에서 사용가능. - 메소드 내에서 선언되어 있지는 않지만 클래스 자체에서 선언되어 있는 변수는 사용가능하다. public class VariableScopeExam { int globalScope = 10; static int staticVal = 7; public void scopeTest(int value) { System.out.println(globalScope); // globalScope 변수 사용가능 System.out.println(value); // 매개변수로 선언된 value도 가능. } public static void m..

    230329 공부기록

    * 배열 - 4개 크기의 일차원 정수배열 int[] array1 = new int[4]; - 3행 4열의 2차원 정수배열 int[][] array2 = new int[3][4]; - 2차원 정수배열은 각 행 마다 다른 열의 길이를 가지게 하는 것이 가능하다. - array를 이용하여 1에서 100까지의 합 구하기 * 클래스 - 클래스는 객체를 만드는 틀. - 많이 쓰는 String도 클래스. String str = new String("Hello"); string : class / str : 인스턴스, 객체를 가리키는 변수 / "Hello" : string 객체 - new 라는 키워드는 객체를 메모리에 올려준다. 메모리에 올라간 객체를 인스턴스라고 한다. - 가리키다 = 레퍼런스하다 = 참조하다 - st..

    자바파일을 String으로 저장하지 말 것.

    원래 Java의 기능인 String과 엮여서 오류가 난다.. 한 파일을 String에 대해 공부한 내용이라 String.java로 저장했더니 클래스 내의 파일에 defined 오류가 우다다 나서 뭔가 했더니 파일명 때문이었다. 자바 내 기능(?)명으로는 저장하지 말 것!

    이클립스에서 커서가 두꺼워졌을 때

    코딩을 하다가 갑자기 폰트나 바꿔볼까 하면서 폰트를 만지작 대고 있다가 결국 돌고 돌아 원래 폰트로 쓰기로 하고 코드를 입력하려는데 두둥. 커서가 이상하다. 구글링을 해보자. 1. Shift + Ctrl + Insert 키를 누르라는 글. 바뀌지 않는다...! 2. 나와 같이 바뀌어진 분들을 보니 삽입모드에서 수정모드가 된 것처럼 얘기를 하셔서 나도 혹시나 문자열들 사이에서 스페이스를 누르니 뒤 문자들이 지워진다. 어라? 혹시 수정모드 커서는 이렇게 생겼나..? 하고 Insert 키만 눌러주니 커서가 제대로 돌아왔다. 아 물론 수정 모드에서 삽입 모드로 다시 정상화되었다. 이번 문제는 빨리 해결되어서 다행!

    이클립스 패키지 메뉴 트리 폰트 변경하는 방법

    노트북만 쓰다가 강의들으면서 코드를 쓰는게 불편해서 모니터를 하나 구입하여 듀얼모니터로 쓰고 있었다. 근데 모니터와 노트북이 해상도가 달라서 노트북에서 볼 때는 불편하지 않았던 패키지 메뉴 쪽이 모니터쪽으로 옮겨서 보니 폰트가 약간 큰 거 같아서 딱 1만 줄이고 싶었다. 구글링을 해보니 코드 폰트 변경하는 방법은 많았는데 패키지쪽 메뉴 트리 폰트 변경하는 방법에 대한 글이 몇 없어서 남겨 놓으려고 한다. 내가 패키지 메뉴는 이쪽이지만 여기를 바꾸게 되면 오른쪽 아웃라인 폰트까지 같이 변경된다. 1. Window - Preferences - General - Appearance - Colors and Fonts를 들어간다. 2. View and Editor Foldrs에서 밑에 내리다 보면 Part tit..

    이클립스 Could not find or load main class / java.lang.ClassNotFoundException 오류 해결하기

    한글 깨짐 문제로 인코딩 문제를 해결하려 하다가 재설치를 하니 뜨는 오류..! 구글링을 좀 해보니 1. build path가 잘못되면 그럴 수 있다고 해서 build path 설정하는 방법을 진행해 보았다. 안된다....^^ 2. 같은 빌드 패스 설정인데 원래 있던 패스를 지우고 다시 설정해주는 방법인가 보다. 아까와 똑같이 프로젝트 - 우클릭 - Build path - Configure Build Path - Libraries 로 들어간 뒤 Standard VM 선택 > Directory > java 설치되어 있는 폴더 선택 ㅎㅎㅎ... 또 안된다... 혹시나 해서 Classpath에 Library를 설치해보았지만 안된다. 3. 또 다른 방법 발견. 이클립스에서 자바 라이브러리가 설정되지 않으면 이런 ..