목록전체 글 (231)
도찐개찐
클래스(Class) 객체를 정의해 놓은 것 객체의 설계도 또는 틀 객체를 생성하는데 사용됨 클래스를 정의하는 방법 클래스란 객체를 정의한 것이므로, 클래스에는 객체의 모든 속성과 기능이 정의되어 있다. copy typescriptclass Tv { // 속성(변수) String color; boolean power; int channel; // 기능(메서드) void power() { power = !power; } void channelUp() { channel++; } void channelDown() { channel--; } 객체(Object) 객체 실제로 존재하는 것. 사물 또는 개념 객체의 용도는 객체가 가지고 있는 기능과 속성에 따라 다름 클래스에 정의된 내용대로 메모리에 생성된 것 객체 만..
인터페이스(Interface) : 사전적 의미로는 “전기 신호의 변환(變換)으로 중앙 처리 장치와 그 주변 장치를 서로 잇는 부분. 또는, 그 접속 장치.” USB, C-type, 콘센트, 전구 와 같은 것을 떠올려 주시면 됩니다. 각 기관 및 협회등에서 설정한 규격에 맞춘 설계도(어떠한 동작을 설계하지는 않음)를 제공하고 일반 기업에서 판매목적으로 해당 규격의 상품에 특별한 기능을 구현하여 판매 함으로써 상품의 규격화등을 통한 비용 절감, 편의, 개발기간 단축등의 이점을 볼수 있습니다. (ex : 예전 아이폰에선 5핀, 8핀등의 자체적인 접속장치를 사용 하여 비규격에 따른 불편함을 느꼇습니다.) 개발 부분에서는 프레임워크, 라이브러리, 프로젝트 리더급 개발자들이 기능이 없는 규격을 정하여 해당 규격에 ..
기본 타입 : Primitive type 참조 타입 : Reference type 기본형 타입(Primitive type) 총 8가지의 기본형 타입(Primitive type)을 미리 정의하여 제공한다. 기본값이 있기 때문에 Null이 존재하지 않는다. 만약 기본형 타입에 Null을 넣고 싶다면 래퍼 클래스를 활용한다. 실제 값을 저장하는 공간으로 스택(Stack) 메모리에 저장된다. 만약 컴파일 시점에 담을 수 있는 크기를 벗어나면 에러를 발생시키는 컴파일 에러가 발생한다. 주로 문법상의 에러가 많다. 예를 들어 ;을 안붙였다는 이유로 빨간 줄이 쳐지는 경우 타입 할당되는 메모리 크기 기본값 데이터의 표현 범위 논리형 boolean 1 byte false true, false 정수형 byte 1 byt..
오버로딩(Overloading) 오버로딩(Overloading)이라는 뜻은 사전적으로 '과적하다.'라는 뜻이다. C언어에서는 함수명이 고유하게 존재해야 한다. 즉 하나의 함수가 하나의 기능만을 구현해야 한다는 것이다. 하지만 자바에서는 하나의 메소드 이름으로 여러 기능을 구현하기 때문에 '과적하다.'라는 뜻의 이름을 붙여준 것으로 보인다. 오버로딩의 정의는 자바의 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메소드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메소드를 정의할 수 있다. 오버로딩의 조건 메소드의 이름이 같고, 매개변수의 개수나 타입이 달라야 한다. 주의할 점은 '리턴 값만' 다른 것은 오버로딩을 할 수 없다는 것이다. 아래의 코드를 통해서 예를 들어보자..
전달인자(Argument)는 메소드 호출시에 전달되는 값 매개변수(Parameter)는 메소드에서 전달 받은 값 public class ArgumentParameter { public static void main(String[] args) { int argument = 10; operation(argument); // 전달인자(Argument) } private static int operation(int parameter){ // 매개변수(Parameter) parameter += 10; return parameter; } } int argument가 operation() 메소드에 전달할 전달인자가 된다. int parameter가 operation() 메소드에서 전달 받은 매개변수가 된다. 출처 :..
Java 에서 문자열을 다루를 대표적인 클래스로 String , StringBuffer, StringBuilder 가 있습니다. 연산이 많지 않을때는 위에 나열된 어떤 클래스를 사용하더라도 이슈가 발생할 가능성은 거의 없습니다. 그러나 연산횟수가 많아지거나 멀티쓰레드, Race condition 등의 상황이 자주 발생 한다면 각 클래스의 특징을 이해하고 상황에 맞는 적절한 클래스를 사용해 주셔야 합니다! | String vs StringBuffer/StringBuilder String과 StringBuffer/StringBuilder 클래스의 가장 큰 차이점은 String은 불변(immutable)의 속성을 갖는다는 점입니다. String str = "hello"; // String str = new S..
다른 프로그래밍 언어에는 함수라는 것이 별도로 존재한다. 하지만 자바는 클래스를 떠나 존재하는 것은 있을 수 없기 때문에 자바의 함수는 따로 존재하지 않고 클래스 내에 존재한다. 자바는 이러한 클래스 내의 함수를 메소드라고 부른다. ※ 보통 함수와 메소드가 공존하는 언어(예:파이썬)에서는 두 개를 구분하여 말하기도 하지만 자바는 보통 메소드와 함수를 구분하여 말하지 않는다. 다만 자바에서 사용되는 함수의 정확한 명칭은 메소드이다. 여기까지 공부해 오면서 메소드에 대해서 이미 알아 보았지만 이번 장에서는 좀 더 자세하게 알아보자. 메소드를 설명하기 전에 믹서기를 생각해보자. 우리는 믹서기에 과일을 넣는다. 그리고 믹서를 이용해서 과일을 갈아서 과일 쥬스를 만들어 낸다. 우리가 믹서기에 넣는 과일은 입력이 ..
배열의 의미 변수의 집합 ,같은 데이터 타입의 변수를 한꺼번에 많이 저장하는 저장소 배열의 특징 같은 데이터타입의 변수를 한꺼번에 여러 개 생성 배열의 크기는 배열의 첨자로 결정 배열의 메모리는 연속적으로 잡힘 ( 참조 값을 이용하여 핸들 ) 배열의 이름은 연속 된 변수들을 참조하기 위한 참조 값 배열의 요소는 변수 배열은 객체 배열의 생성과 구조 동일 데이터 타입으로 여러 변수생성 데이터 타입 : int[10] 배열의 이름 : intArray 메모리 : int 4byte * 10 java spec에 정의됨 Object클래스의 메소드 이용가능 배열의 이름은 참조 값 public class ArrayTest { public static void main(String[] args) { // 배열 초기화 //..