전체 글
-
[JAVA] 배열JAVA 2021. 5. 3. 22:17
위 포스팅은 패스트캠퍼스 강의를 바탕으로 작성했습니다. 배열이란? 동일한 자료형의 순차적인 자료 구조 인덱스 연산자[]를 이용하여 빠른 참조가 가능 물리적 위치와 논리적 위치가 동일 배열의 순서는 0부터 시작 자바에서는 객체 배열을 구현한 ArrayList를 많이 활용 int[] arr1 = new int[10]; int arr2[] = new int[10]; 위 2가지 경우가 모두 배열의 길이가 10인 것을 만드는 코드입니다. 두 가지가 모두 쓰여져도 되지만, 전자가 배열의 형태를 알 수 있어 선호하는 스타일이라고 합니다. 객체 배열 선언과 구현 기본 자료형 배열은 선언과 동시에 배열의 크기만큼의 메모리가 할당 되지만, 객체 배열의 경우엔 요소가 되는 객체의 주소가 들어갈(4바이트, 8바이트) 메모리만..
-
[JAVA] static 응용 - 싱글톤 패턴(singleton pattern)JAVA 2021. 5. 3. 15:21
위 포스팅은 패스트캠퍼스 강의를 바탕으로 작성하였습니다. 프로그래밍을 하다보면 여러개의 인스턴스를 생성했을 때, 문제가 되는 경우가 있습니다! 대부분 하나의 클래스에 여러개의 인스턴스인 경우가 많습니다 예를들어 , 많은 학생들, 주문들 회사에서 사원은 여러명일 수 있지만, 회사라는 객체는 하나이어야만 합니다. 이런 경우 싱글톤 패턴을 사용합니다! 코드를 보면서 더 설명을 하겠습니다 ! 위와 같이 Comapny 라는 클래스를 만든다면, defualt생성자를 갖게 되고, 외부에서 Company를 건들 수 있습니다. 따라서 Company 생성자를 private으로 제공을 합시다! Company를 하나만 만들것이니 static 을 붙여주고, instance를 반환하는 getInstance() 메소드를 만들어 줍..
-
[JAVA] STATIC 변수JAVA 2021. 5. 3. 14:52
이 포스팅은 패스트캠퍼스의 강의를 바탕으로 씌여졌습니다. 생성자는 다르지만, serialNum은 같은것을 알 수 있습니다. 지역변수들은 스택메모리에 생성되고, 생성자들은 힙메모리에 저장됩니다! 실습으로 들어가서!! 회사원이 입사할때마다 새로운 사번을 부여하는 코드를 작성해봅시다 어떻게 해야하는지 생각을 해봅시다. 객체가 초기화될때 초기화 작업은 생성자에서 합니다. 따라서 serialNum++ 을 만들고, 그것을 멤버변수 employeeId 에 저장합니다. 이렇게 작성하면 각자 다른 사번을 갖게 됩니다. static 변수는 프로그램이 메모리에 있는 동안 계속 그 영역을 차지하므로,너무 큰 메모리를 할당하는 것은 좋지 않다. 클래스 내부의 여러 메서드에서 사용하는 변수는 멤버 변수로 선언하는 것이 좋다. 멤..
-
[JAVA] 객체 지향 프로그래밍에서의 협력JAVA 2021. 5. 1. 00:09
위 포스팅은 패스트캠퍼스의 강의를 바탕으로 포스팅하였습니다. 객체 지향 프로그램에서 객체 간에는 협력이 이루어진다. 협력을 위해서는 필요한 메세지를 전송하고 이를 처리하는 기능이 구현되어야 한다 매개 변수로 객체가 전달되는 경우 발생 객체 협력의 예 간이 프로젝트 MISSION😲😲😲 버스타고 학교가는 학생의 과정을 객체지향 프로그래밍으로 구현해봅시다! James와 Tomas는 각각 버스와 지하철을 타고 학교에 갑니다. James는 5000원을 가지고 있었고, 100번 버스를 타면서 1000원을 지불합니다. Tomas는 10000원을 가지고 있었고, 초록색 지하철을 타면서 1200원을 지불합니다. 두 학생이 버스와 지하철을 타는 상황을 구현해 봅시다. Student 클래스를 만들었습니다. 위 클래스에는 2..
-
[JAVA] INTERFACEJAVA 2021. 4. 27. 13:37
이 포스팅은 [생활코딩]님의 INTERFACE 강의안 및 하신 말씀을 글로 적은 것입니다. 추가적인 설명이나 정확한 개념은 강의를 통해 알아가면 더 좋을 것 같습니다. www.youtube.com/watch?v=Pvjss79v_qw 어떤 객체가 있고 그 객체가 특정한 인터페이스를 사용한다면, 그 객체는 반드시 인터페이스의 메소드들을 구현해야 한다. 만약 인터페이스에서 강제하고 있는 메소드를 구현하지 않으면 이 애플리케이션은 컴파일조차 되지 않는다. interface I { public void z(); } class A implements I { public void z(){} } 클래스 A뒤의 implements I 는 이 클래스가 인터페이스 I를 구현하고 있다는 의미이다. 즉, 1행의 interfac..
-
[독서] 누워서 읽는 알고리즘(3)독서 2021. 4. 22. 20:08
누워서 읽으라고 했지만, 전혀 누워서 편히 볼 수 없었는 책이다ㅎㅎ.. 그나마 이해가 되는 부분과 철학적인 생각이 있어 인용해본다. 눈으로 풀어보는 N개의 여왕문제 "가로 세로 모두 N개의 칸이 있는 체스판 위에 N개의 여왕을 올려놓되 서로 공격해서 잡을 수 없도록 놓을 수 있는 방법은 모두 몇개 인가?" ( 체스판 위에 여왕을 내려놓되 행,열,대각선 어느 곳으로도 다른 여왕과 충돌하지 않도록 만드는 문제, 여왕체스는 자신의 위치를 기준으로 상하좌우, 대각선 각 1칸씩 이동 가능하다) 문제 해결을 위해서는 어려운 문제를 쉬운 문제로 변형해 보고, 규칙을 찾으라고 한다. N개의 칸을 4x4 의 판으로 만든 후, 직접 해보자! 위의 사진처럼 (1,1)에 여왕체스를 두고, 2행에 둘 수 있는 곳을 찾는다는 방..
-
[독서] 공정하다는 착각(3) 마지막독서 2021. 4. 20. 01:54
결론 : 능력, 그리고 공동선 P.348 장벽을 허무는 일은 좋다. 누구도 가난이나 편견 때문에 출세할 기회를 빼앗겨서는 안 된다. 그러나 좋은 사회는 '탈출 할 수 있다'는 약속만으로 이루어지지 않는다. 사회적 상승에만 집중하는 것은 민주주의가 요구하는 사회적 연대와 시민의식의 강화에 거의 기여하지 못한다. 심지어 우리보다 사회적 상승에 보다 성공적인 나라라도 상승에 실패한 사람들이 자신의 자리에서 만족할 수 있도록, 그리고 스스로를 공동체 구성원으로 여길 수 있도록 할 방법을 찾아야 한다. 우리가 그러게 하는 데 실패함으로써 능력주의적 학력이 없는 사람의 삶은 더욱 힘덜어졌다. 그리고 그들은 자신의 소속이 어디인지 정체성을 의심하게 되었다. [내 생각] 마지막 문장이 와닿았다. 내 소속이 어디고 정체..