분류 전체보기 16

뇌를 위한 최소한의 습관

뇌를 위한 최소한의 습관집중력과 잠재력을 끌어올리는 두뇌 정비 프로젝트피터 홀린스4.0한빛비즈자기계발  2024.05.07 1. 운동하기 (춤과 요가 등) 2. 뇌 신호전달물질 잘 관리하기 3. 초록색 많이 보기 4. 두들링하기 (연필로 종이에 낙서하기) 5. 양질의 수면  6. 햇빛 보기 7. 귀여운 동물 이미지 보기 8 .감사일기 쓰기

객체 지향 설계 5가지 원칙 (SOLID)

- 좋은 객체 지향 프로그래밍은 다형성을 구현한다. (역할 = 인터페이스 / 구현 = 인터페이스를 구현한 클래스, 구현 객체)- 객체를 설계할 때 역할과 구현을 분리- 클라이언트는 대상의 역할(인터페이스)만 알면 된다.- 객체 설계시 역할(인터페이스)을 먼저 부여하고, 그 역할을 수행하는 구현 객체 만들기- 클라이언트와 객체 서버는 서로 협력 관계를 가짐 (클라이언트 : 요청 / 서버 : 응답)  SOLID: 객체지향 언어에서 좋은 설계를 얻기 위한 개발자들이 지켜야할 규범 SRP : 단일 책임 원칙 (Single responsibility principle): 한 클래스는 하나의 책임만 가져야 한다.: 중요한 기준은 변경 -> 변경이 있을 때 파급효과가 적으면 원칙을 잘 따른 것임  OCP : 개방-폐..

12장 추상 클래스와 인터페이스

12.1 추상클래스 (abstract class)- 클래스이며 인터페이스일 수는 없다.- 추상클래스는 class 앞에 abstract가 붙은 class를 의미한다.- 추상매서드는 추상적인 매서드 즉, 구체적인 정의가 없는 매서드이다. (미완성 매서드 의미)- 인터페이스는 매서드가 모두 100% 추상매서드 여야한다. 또한 모든 매서드가 static final이여야하고, 접근지정자가 public 이여야한다.- 일반 클래스는 객체를 생성할 수 있다. (붕어빵 객체 생성 가능)- 추상 클래스와 인터페이스는 그러나 붕어빵을 생성할 수 없는데 왜 사용할까? 뒤에서 설명함  - 하나도 안가지고 있어도 추상클래스로 정의할 수 있을까? => 정의해도 되고 정의 안해도된다.- 하지만 멀쩡한 클래스에 abstract 붙일 ..

2일차_Java 프로그래밍 언어 기본 문법

1주차 자바 기초- Java 개발 환경 구성- Java 프로그래밍 언어 기본 문법 25.01.10 (금)강의 책 : 자바/스프링 개발자를 위한 실용주의 프로그래밍 (위키북스, 김우근 저)아래의 내용은 [LG CNS AM CAMP 1기] 수업을 바탕으로 작성하였습니다. [배열]- 동일한 자료형을 묶어 저장하는 참조 자료형- 생성할 때 크기를 지정해야 하고, 한 번 크기를 지정하면 절대 변경할 수 없는 특징이 있음- 자료형[] 변수명; 또는 자료형 변수명[];    int[] a;                       int a[];    String[] b;                 String b[]; [1차원 배열의 생성 및 값 대입]방법1. 배열 객체의 생성 + 값 대입int[] a = new ..

11장 자바 제어자 - final, abstract

11.1 자바 제어자(modifier) #2 (final, abstract)- final은 1) 필드/지역변수 앞에  2) 메서드 앞에 3) 클래스 앞에 붙는다.- final은 생성자 안에서라도 꼭 마지막으로 초기화를 해줘야한다. (3번)- final이 필드이든 지역변수이든 지정된 값을 바꿀 수 없다.- 모든 지역변수들은 stack 메모리에 생성 - 파이널 변수들은 생성될 때 파이널 영역에 복사되어 생성된다. (힙-필드이든 스택-지이든)- 값을 바꿀 수 없는 이유는 값이 처음 들어간 순간에 (선언되는 순간) 1번 복사되기 때문에 그 순간 이후에는 값을 바꿀 수 없게 만드는 것. (원본을 바꿀 수 있다면 복사본은 쓸모없어지기 때문이다.)- final 메서드는 마지막 메서드라는 의미이므로 override가 ..

10장 클래스의 상속과 다형성

10-1. 클래스의 상속- 생성자는 상속 받지 않는다.- 부모에게 상속 화살표를 향한다.- 가장 중요한 장점은 다형적 표현이 가능하다는 것이다. ★ ★ ★- 학생은 사람이다. 그러나 사람은 학생이다 (x) 불가능하다.- A의 모든 기능은 C가 가능하다.  (화살표 방향으로 읽으면 모두 성립한다.) (화살표를 거스른다면 불가능하다.)- 다형적 표현은 하나의 객체를 두고 여러 의미로 부를 수 있는 것이 다형적 이다.- 배열의 2가지 특징 1) 동일한 타입만 저장 2) 크기 고정- 상속은 상위 클래스인 부모클래스를 정의해서 나머지 하위 자식들을 포함하자. - 부모 클래스를 정의하면 하위 클래스를 관리할 수 있다. (객체를 관리하기 편해진다.)- 상속 = 다형적 - 다중 상속을 받으면, 모호성이 생기기 때문에 ..

09장 자바 제어자 - 접근 지정자와 static

9-1. 자바제어자(modifier) #1 접근제어자- 멤버에 붙는 4가지 접근지정자가 존재.- 아무것도 붙이지 않으면 int c 처럼 defualt를 접근지정자만 지정한 것이다.- defualt 접근지정자와 package 접근지정자와 동일한 말- 같은 패키지에 있으면 defualt는 모든 클래스에서 사용 가능 => 그러니까 package 접근지정자라고 하는 것이다.- extends 는 상속을 의미한다.- 클래스의 접근지정자는 2가지 밖에 안된 다는 것을 기억하자.- 생성자 같은 경우 컴파일러가 자동으로 추가하기 때문에 따로 생성자의 접근지정자라고 공부하는 것- 클래스의 접근지정자와 동일하게 생성자가 생성된다. (그렇다면 defualt와 public일것 => class가 두가지 밖에 안됨으로)- 클래스 ..

08장 클래스 외부 구성 요소

8-1. 외부구성요소 (패키지, 임포트, 외부클래스)- 패키지마다 이름 공간 생성 ★ ★ ★- 다른패키지의 클래스 사용하려면 항상 패키지명.클래스명 즉, full name을 사용해야한다는 것을 기억.- import는 패키지 코드 다음에 와야한다. (여러개 가능)- import는 다른 패키지의 클래스를 내 패키지의 클래스인것 마냥 쓰겠다는 의미이다.- public이 붙어야 다른 패키지에서 접근할 수 있다. (접근지정자라고 함)- abc.bcd.cde 라는 구조가 있다고하면 abc.bcd.*를 해도 cde 아래 파일들을 다 임포트하는 것이 아니라 bcd 아래에 있는 파일만 임포트한다. cde 파일을 임포트하려면 abc.bcd.cde.*를 해야한다. - 외부 클래스에서는 절대 public이 붙을 수 없다.=>..

07장 클래스 내부 구성 요소

7-1.내부구성요소 필드 - 필드와 지역변수를 구분하기- void work2 (int i)에서 i 또한 work2 메서드에서 실행되는 것이기 때문에 지역변수이다.- 메서드 별로 프레임이 존재하기 때문에 각 메서드 안에 같은 변수를 사용해도 문제가 되지 않는다. 7-2. 내부구성요소 메서드 - 리턴타입, 메서드 이름 () {} 는 필수이다. 입력매개변수는 옵션이다.- public과 static은 수식어이다. - 반환값이 없다면 void를 설정하여 리턴하지 않게 한다. (실행하지 않는 것이 아니라, 실행은 하되 결과값을 리턴하지 않는다는 것)- 매개변수에서 선언과 값을 분리해서 실행된다. (배열에서는 다른 값을 초래할 수 있기 때문에 이렇게 알아두자)- static 안에서는 static만 호출이 가능하다.-..

06장 클래스와 객체

6-1. 클래스의 기본 개념 및 객체 생성과 활용- 자바는 시작부터 클래스이다. - 절차지향형은 '순서' 대로 하겠다는 의미- 객체지향형은 '객체'를 중심으로 프로그램을 짠다는 의미이다.- 프로그램이 클 수록 객체지향형이 더 유리하다. - 클래스와 인터페이스는 상반대이다. (즉, 동반할 수 없다.)- 인터페이스는 안에 들어간 것이 어떤 타입인지 이미 저장되있는 것 (지정되어있.) - 클래스 밖에 올 수 있는 3가지와, 안에 올 수 있는 4가지를 꼭 기억해야한다.- package는 폴더를 의미. - class 밖에 class 여러개 있을 수 있다. => public을 붙일 수 없다. (public 붙인 class는 파일 명과 동일해야한다.)- class {} 내부에 생성된 변수를 필드이고, 메서드 안에 생..