목록전체 글 (40)
개발계발
이번에도 문제 설명은 생략https://school.programmers.co.kr/learn/courses/30/lessons/77485 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 접근 방식1. rows * columns 크기의 2차원 배열을 만든다.2. queries의 query를 통해 그래프를 회전시킴(함수 따로 빼기)3. 돌리면서 최소값을 갱신시켜 최소값 반환 풀이코드def rotate_graph(graph, query): x1 = query[0]-1 y1 = query[1]-1 x2 = query[2]-1 y2 = query..
추상 클래스란?객체를 생성할 수 있는 클래스를 실체 클래스라고 했을 때, 이 클래스들의 공통적인 필드와 메소드를 추출해서 선언한 클래스를 추상 클래스라고 한다.추상 클래스는 실체 클래스의 부모 역할을 한다. 예를 들어 새, 강아지, 고양이라는 실체 클래스가 있을 때 동물이라는 추상 클래스를 만들어 부모 역할을 하도록 할 수 있다. 주의 사항- 추상 클래스는 new 연산자를 이용해 객체를 직접 생성할 수 없고, 실체 클래스를 만들기 위한 부모 클래스로만 사용된다.(extends 뒤에만 올 수 있음) 추상 클래스 선언클래스 선언 시 abstarct 키워드를 붙이면 추상 클래스가 된다.위에서 작성했듯이, 객체를 직접 만들지 못하고 상속을 받은 자식클래스만 만들 수 있다.(생성자가 없는 것은 아님) 추상 클래스..
상속이란?말 그대로 부모가 자식에게 물려주는 행위로, 부모 클래스의 필드와 메소드를 자식 클래스에 물려줄 수 있다. 이미 잘 개발된 클래스를 재사용해서 새로운 클래스를 만들기 때문에 중복되는 코드를 줄여 개발 시간을 단축한다.사용법은 아래와 같다.public class Parent { int field1; void method1() { // 함수 로직 }}public class child extends Parent { String field2; void method2() { // 함수 로직 }} 위와 같이 하면 child 클래스에서 field1과 method1()를 사용할 수 있다. 자바는 다중 상속을 허용하지 않아서, extends 뒤에는 단 하나의 부모 클래스만이 ..
경우에 따라서 객체의 필드를 외부에서 변경하거나 메소드를 호출할 수 없도록 막야한다.이런 경우를 위해서 자바에서는 public, protected, private라는 접근 제한자를 제공한다. 접근 제한자제한 대상제한 범위public클래스, 필드, 생성자, 메서드없음protected필드, 생성자, 메소드같은 패키지, 자식 객체만 사용 가능(default)클래스, 필드, 생성자, 메소드같은 패키지private필드, 생성자, 메소드객체 내부 클래스의 접근 제한클래스는 public과 default 접근 제한을 가질 수 있다.클래스 작성 시 기본적으로 public 키워드를 많이 사용하는 데, 생략할 경우 default 접근 제한을 가지게 된다.default의 경우, 같은 패키지에서만 사용가능하게 된다. 생성자의 ..
final은 문자 그대로 최종적인 값으로, 프로그램 실행 도중에 값 수정이 불가능하다.final 필드에 값을 줄 수 있는 방법1. 필드 선언 시 초기값 대입2. 생성자에서 초기값 대입위 2가지밖에 없다. 아래 예시를 보자public class Korean { // 인스턴스 final 필드 final String nation = "대한민국"; final String ssn; // 인스턴스 필드 String name; // 생성자 public Korean(String ssn, String name) { this.ssn = ssn; this.name = name; }} ->1. 한국인의 국적은 대한민국이기 때문에 필드 선언 시 초기값을 설정했고..
필드와 메소드는 선언 방법에 따라 인스턴스 멤버와 정적 멤버로 분류된다.인스턴스 멤버는 객체 생성 후 사용할 수 있고(객체에 소속)정적 멤버는 객체 생성 없이도 사용할 수 있다.(클래스에 고정) 인스턴스 멤버객체지향 프로그래밍 포스팅에서 사용한 예시가 모두 인스턴스 메소드이다.아래 코드를 보면 된다.public class Car { // 인스턴스 필드 int speed; //인스턴스 메소드 void setSpeed(int speed) { this.speed = speed }} 위 코드처럼 인스턴스 필드와 메소드를 작성하면 다른 클래스에서 해당 필드 혹은 메소드에 접근하려면 우선 객체를 생성하고 객체.필드 혹은 객체.메소드의 형식으로 사용해야한다.정적 멤버바로 코드를 ..