전체 글 213

Cannot define dimension expressions

Cannot define dimension when an array initializer is provided 배열 초기값이 지정되어 있으면 {1, 2, 3} 값을 어디에 넣어야할지 알 수가 없다 new int[] 초기값이 없어야 d[0,1,2]를 만들고 d[0]에 1, d[1]에 2, d[2]에 3을 가지고 있는 메모리 주소를 대입하는데 3이 지정되어 있으면 자바는 {1, 2, 3} 값을 어디에 넣어야할지 알 수가 없다 초기값을 없에 문제 해결

에러 정리/백 2021.02.11

No enclosing instance of type Desk is accessible

No enclosing instance of type Desk is accessible. Must qualify the allocation with an enclosing instance of type Desk. 클래스 안에 클래스를 만들고 안에 만든 클래스 인스턴스를 만드려고 했을 때 나온 오류 qualify the allocation가 무슨 뜻인지 해석은 잘 안되지만 첫 문장으로 유추해보면 Desk가 닫혀 있어서 그 안에 있는 클래스에 접근이 안된다는 것 같다 안에 있는 걸 바깥으로 빼서 해결

에러 정리/백 2021.02.10

다형성

다형성은 자바의 특징 중 하나인데 같은 클래스, 메소드지만 다양하게 동작하는 걸 말한다 같은 메소드를 파라미터를 다르게 줘 사용하는 오버로딩이 대표적이다 자식 클래스를 인스턴스화 해서 부모 클래스 타입 변수에 대입 시키면 부모 클래스에서 정의된 것만 사용할 수 있다 자식 클래스에서 추가적으로 정의한 메소드는 사용이 불가하고 재정의한 것만 사용할 수 있다 클래스 B는 A를 상속 받으므로 클래스 A 타입인 obj에 대입이 가능하다 하지만 데이터 타입이 A이기 때문에 B에서 추가적으로 정의한 메소드 y는 사용할 수 없고 x만 사용이 가능하다 위 예시에서 클래스 B의 메소드 x는 A의 메소드를 재정의(overriding)한 것이기 때문에 사용할 수 있다 Calculator라는 부모 클래스에 인스턴스를 대입 시킴..

Java/자바 2021.01.21

Interface

인터페이스는 접근제어자와 Abstract와 같이 규제를 할 때 사용한다 어떤 인터페이스를 구현하는 클래스는 그 인터페이스와 같은 형식의 메소드를 사용해야한다 인터페이스 기능은 여러사람이 동시에 같은 작업을 놓고 일을 할 때 매우 유용하게 사용이 된다 인터페이스는 같은 구조를 보고 일할 수 있게 하는 기준이라고 볼 수 있다 인터페이스 안의 메소드들은 인터페이스를 사용하기 위한 조작장치이다 하나의 클래스가 여러가지 인터페이스를 구현할 수 있다 인터페이스는 상속도 가능하다 인터페이스의 맴버는 외부에서 제어할 수 있어야하기 때문에 Public을 사용한다

Java/자바 2021.01.21

Final, Abstract

Final은 클래스를 상수화 시킨다고 보면 된다 더 이상 변경이 없다고 선언하는 것으로 상속이 불가능하다 Abstract는 시그니쳐로서 역할만하고 상속을 해서 사용을 강제한다 (사용자에게 동작 방법을 넘김) Abstract 자체 로직을 가질 수 없기때문에 상속 받은 클래스에서 Overriding을 통해 로직을 만들어줘야한다 메소드 중에 하나라도 Abstract가 있다면 클래스도 Abstract이어야한다 Abstract는 추상 메소드 말고 다른 메소드들도 가질 수 있다 공통적인 부분은 Abstract를 통해 시그니쳐로서 놔두고 가변적이고 추가적인 부분들은 사용자들이 자유롭게 상속 받아서 재정의해서 사용할 수 있도록 한다 위의 예제는 합계(sum)를 실행하고 평균(avg)을 실행하는 절차를 메소드 run을 ..

Java/자바 2021.01.21

접근 제어자

Public, Private 접근 제어자는 사용자에게 어디까지 접근을 할 수 있는지 범위를 정해주는 것이다 public은 모든 클래스에서 접근 가능, private은 같은 클래스 내에서만 접근 가능 변경되면 오류를 발생할 수 있는 값에는 private을 통해 public 메소드를 통해서만 값을 가져올 수 있게 한다 이를 통해 오류 발생을 잘 통제할 수 있고 좀 더 안정적인 시스템을 구축할 수 있다 위 예시에서는 private int left, right이 public이라면 밑에서 A.left(100) 이렇게 임의 대로 변경을 할 수 있기 때문에 private으로 접근을 제어했다 *은행을 예로 들면 고객은 main 메소드이고 public은 은행원 그리고 private은 금고라고 볼 수 있다 고객 (main..

Java/자바 2021.01.19

UI, API

UI (User Interface) 유저와 컴퓨터 사이에 존재하면서 유저가 원하는 걸 컴퓨터에게 전해주는 중개자 #웹사이트의 메뉴 버튼, 컴퓨터의 전원 버튼 등 API (Application Programming Interface) 어떤 기반이 되는 시스템이 제공하는 인터페이스, 이를 바탕으로 또 다른 어플리케이션을 만들 수 있다 웹브라우저에 javascript:alert("Hello World")라고 작성하면 알림창이 뜨는데 여기서 alert는 웹브라우저가 제공한 API이다 알림창의 버튼이나 경고 아이콘 등은 또 운영체제 API에서 제공하는 것들이다 식당으로 비유하면 손님은 개발자이고 주방은 System, API는 웨이터로 볼 수 있다 1. 손님이 메뉴 중 하나를 골라서 주문한다 (어떤 값을 입력) 2..

Java/자바 2021.01.19