728x90

Programming/Java 21

[Java 기초] 형변환과 오버라이딩 메서드 / 다형성

손으로 똥을싸본적이 있으신가요? 저는 있습니다. 갑작스럽게 개발자가 되고난 이후부터이죠 허허. 제손으로 큰똥을싸고 관제에 울리는 알람을 보면 식은땀이 존나나요 진짜~ㅋㅋㅋ 아무튼 잡소리 치우고 어찌보면 당연한건데 생각하면 헷갈리는것들 (지극히 주관적) 인거 적어보자 형변환시에 오버라이딩 메서드 호출 Person라는 클래스를 상속받은 Child라는 클래스가 있다고 가정해보자. Person는 haveLunch() 라는 메서드를 가지고 있고 child는 이 메서드를 오버라이딩한다. 자 그럼 여기서 문제! Person person1 = new Child(); person1.haveLunch(); 위처럼 instance는 Child로 생성되지만 Person으로 형변환된 객체 person1의 haveLunch 메서..

Programming/Java 2021.04.28

[Java기초] 상속에서 클래스 생성 과정과 형변환

클래스 생성 과정 상속받은 클래스의 생성자를 생성할때 상위클래스의 생성자를 호출한다. 즉, 하위클래스가 생성이 될때 먼저 상위클래스가 생성된다는것! 상속받은 클래스에선 상위클래스의 생성자를 따로 호출한다는등의 표현이 보이지 않아도 컴파일 과정에서 컴파일러에 의해 자동적으로 이뤄진다. (물론, super를 이용해 따로 표현하는것도 가능하다.) // 예시코드 public class Customer { public Customer() { } } public class VIPCustomer extends Customer { public VIPCustomer() { // VIPCustomer 객체 생성시 컴파일러가 자동적으로 Customer생성자를 호출하고 VIPCustomer 객체를 생성함 // super() ..

Programming/Java 2021.04.25

[Java SSAP 기초] Array vs ArrayList

오늘 근무중 들었던 돌발질문 "String [] 이거랑 ArrayList 의 차이가 뭔지 알아?" 본인 : .... 공부하겠습니다.. ㅋㅋ 그렇다. 나는 이것도 모르고 자바개발자가 됐다.ㅋㅋ 일단 List와 ArrayList는 사실상 거의 비슷하다. 자바에서 List가 인터페이스고 ArrayList는 List가 implements 된 클래스다. ㅅ앞서 다뤘던 다형성을 위한 구성이라 생각하면 된다. Array vs List (>=ArrayList) 우선 Array와 List의 공통점 차이점을 먼저 알아보자 공통점 아이템에 순서가 존재하는 컬렉션이다. 그렇다. 결국엔 둘다 많은 데이터를 보다 효율적으로 관리, 처리하기 위한 도구라고 할 수 있다. 그렇다면 차이점은 무엇일까? Array List index의 ..

Programming/Java 2021.02.02

18. JAVA 네트워크

JAVA 네트워크 자바는 다른 언어에 비해 네트워크 기능이 뛰어나다. 고수준언어답게 네트워크 안에서 이뤄지는 다양한 프로세스를 개발자가 간단히 사용할 수 있게 되어있다. 오늘은 자바 네트워크를 위한 api인 java.net 패키지의 몇가지 클래스들을 살펴보도록 하자. InetAddress 호스트의 IP주소를 비롯한 네트워크상의 정보를 얻어오는 클래스다. 예시를 살펴보자. public class InetAddressEx { Scanner scanner; public InetAddressEx() { // TODO Auto-generated constructor stub scanner = new Scanner(System.in); try { InetAddress inet = InetAddress.getByNa..

Programming/Java 2021.01.17

17. JAVA 그래픽

JAVA GUI(Graphic User Interface)란? 바탕화면 아이콘 더블클릭하면 해당 프로그램을 시작시켜준다. JAVA GUI란 이런 아이콘처럼 사용자가 사용하기 편리하게 그래픽 요소를 가미하여 컴퓨터를 사용하기 쉽게 만들어놓은 것이다. 반대 개념은 CUI(Character User Interface : 문자열 명령어로 애플리케이션을 구동, 종료하는것)이다. AWT 컴포넌트 AWT는 자바에서 그래픽 요소를 만들기 위한 컴포넌트들이다. 버튼, 체크박스등이 그 예이다. 컨테이너 안에는 또 다른 컨테이너가 놓일 수 있다. 그 안엔 또 버튼, 텍스트필드, 체크박스와 같은 컴포넌트가 존재한다. 다양한 컴포넌트들을 예제코드를 통해 살펴보자 Button package com.javalec.ex2; impo..

Programming/Java 2021.01.17

16. 스레드(Thread)

스레드란? 일단 멀티프로세스가 뭔지 알고가자. 멀티프로세스란 컴퓨터가 여러가지 일을 동시에 하고 있는것을 뜻한다. 컴퓨터에서 워드도 하고 파일전송도 하고 채팅프로그램까지 돌리고 있으면 CPU하나에서 여러가지 프로그램이 돌아간다. 이러한것을 멀티프로세스라고 한다. 그렇다면 스레드란 무엇일까? 위에서 말한 프로세스 안에서 다시 여러가지 일을 하는것을 뜻한다. 예를 들어 카톡에서 파일을 전송하면서 채팅도 동시에 할 수 있다. 채팅프로그램 프로세스에서 파일전송 스레드와 채팅 스레드가 같이 돌아가고 있는것이다. Java는 기본적으로 멀티스레드를 지원한다. 스레드는 두가지 형태로 존재하는데 하나는 객체 하나를 n개의 스레드가 공유하는 방식, 또는 하나의 객체당 하나의 스레드가 존재하는 방식이다. 아래의 그림을 참고..

Programming/Java 2021.01.16

15. JAVA 입출력(I/O)

I/O public Class MainClass{ public static void main(String[] args){ try { } } input과 output으로 컴퓨터에 입력하는게 input, 컴퓨터가 출력하는것이 output이다. 앞에서 줄기차게 봤던 System.out.println(); 구문이 output이다. 앞으로 어떤 데이터를 읽는다면 input이라 생각하면 되고, 데이터를 '쓴다'면 output이라 생각하면 된다. 입출력 API InputStream, Reader & OutputStream, Writer byte 단위로 나뉜다. - InputStream, OutputStream : 1byte단위로 이미지, 동영상등의 데이터에 주로 사용한다. - Reader, Writer : 2byte..

Programming/Java 2021.01.16

14. JAVA Collections

컬렉션이란 우리말로 쉽게 말하면 자료구조이고 더 쉽게 말하면 배열이다. 앞에서 배운 단순한 배열 뿐 아니라 다른 훌륭한 자료구조를 자바가 많이 만들어놨다. 따라서 그 API를 우리가 잘~ 사용하면된다 ㅋㅋ JAVA도 결국 효과적인 데이터를 처리하기 위한 수단 자바도 결국 다른 언어랑 마찬가지로 데이터를 효과적으로 정리하기 위한 언어다. 데이터를 어떻게 정리하고 활용하냐에 따라 효율성이 많이 달라질 수 있다. 따라서 데이터의 성격에 따라 잘 관리를 해야한다. 이를 위해 자바에서도 다양한 자료구조형을 제공한다. 실제로 오늘 다루는 내용의 일부는 학부시절 "데이터구조론(걍 자료구조)"에서 배웠던 내용이 꽤 나온다. 그때 담당 교수님이 이상한 바람이 불어서 그해의 자료구조 수업을 파이썬으로 하셨는데(약 6년전...

Programming/Java 2021.01.15

13. 예외처리

초보개발자 주씨는 현업 개발자로 취업한 후 방구석에서 혼자 노트북으로 다루던것과 차원이 다른 무거운 프로젝트를 보고 놀라움과 두려움을 느꼈다... 그래 바로 내이야기다.. 내가 다니고 있는 회사에선 다양한 툴과 언어를 사용한다. 하지만 모든 언어에서 중요하게 여겨지고 시스템 실행의 완성도를 높이는 필수적인 작업은 예외처리 작업이다. (Error Handling 이라고 볼 수 있다.) 강의에서 나오는 예시를 들어서 설명을 해보자 예외처리의 필요성 두가지 숫자를 넣으면 곱하기 빼기 더하기 나누기의 사칙연산을 모두 수행해주는 프로그램이 있다. 이때 입력값이 10과 0이라면 10/0에 의해 오류가 발생하고 프로그램의 동작이 멈출것이다. 그런데 우리는 나누기 오류 하나때문에 나머지 세가지값을 잃어야할까? 그건 너..

Programming/Java 2021.01.13

12. API

ㅇJAVA 필수 API API란 무엇? java에는 개발자들이 편리하게 쓸수 있는 클래스들이 아~~~주 많다. 이러한 기본적으로 제공되는 클래스들로 개발자들은 그냥 편하게 다양한 기능을 사용할 수 있다. 이러한 기능들을 정의해둔 클래스들을 API(Application Programming Interface)라고 한다. 즉 '누군가가 만들어놓은 기능'들을 API라 할 수 있다. API의 종류는 너~~~무나도 많지만 여기선 많이 사용하는 API만 몇가지 알아보도록 하자. String의 이해 그동안 많이 사용했던 String API를 알아보자! String string = "Hello World!" String은 대문자로 시작하기 때문에 기초데이터가 아닌 객체데이터이다. 하지만 뒤에 new 생성자 없이 기초데..

Programming/Java 2021.01.11
728x90