728x90 JAVA27 자바 언어 개요 자바 언어의 탄생 1991년 ~ 썬 마이크로 : 그린 프로젝트에서 가정용 전자기기에서 사용되는 작은 컴퓨터언어를 디자인함. virtual machine에서 동작하는 중간코드를 생성 c++ : 절차지향 + 객체지향 → oak : 완벽한 객체지향 언어 (제임스 고슬링), 이후 java라는 이름으로 바뀜 world wide web의 발전과 mosaic의 사용에 주목하여 자바를 기반으로 한 웹 브라우저를 제작함 hotjava브라우저로 발전 자바 언어의 특징 단순 c++의 전위처리, 포인터 사용, 다중 상속, 구조체, goto문 사용, 연산자 중복 가능 등 기존 어려운부분 제외 가비지 컬렉터로 자동 메모리 관리 객체지향 언어라는 객체를 사용해서 프로그램을 작성하도록 하는 언어 재사용성을 높일 수 있음 코드의 재사.. 2023. 3. 28. 인터페이스 극단적으로 동일한 목적 하에 동일한 기능을 수행하게끔 강제하는 것 자바의 다형성을 극대화하여 개발코드 수정을 줄이고 프로그램 유지보수성을 높이기 위해 사용함. 인터페이스는 interface키워드를 통해 선언할 수 있으며, implements키워드를 통해 일반 클래스에서 인터페이스를 구현할 수 있다. JAVA8 이전까지는 상수, 추상메소드만 선언이 가능했지만 (그만큼 강제성이 강했다) JAVA8부터는 디폴트메소드, 정적 메소드가 추가되었다. public interface 인터페이스명 { //상수 타입 상수명 = 값; //추상메소드 타입메소드명(매개변수,...); //디폴트메소드 default 타입 메소드명(매개변수,....){ // 구현부 } //정적메소드 static 타입 메소드명(매개변수) { //구현.. 2023. 3. 14. 업캐스팅과 다운캐스팅 형 변환(업캐스팅) 상위 클래스로 변수를 선언하고 하위 클래스의 생성자로 인스턴스를 생성 상속 관계에서 모든 하위 클래스는 상위 클래스로 형 변환(업캐스팅)이 됨 (그 역은 성립하지 않음) 형 변환과 메모리 Customer vc = new VIPCustomer(); VIPCustomer()생성자에 의해 VIPCustomer클래스의 모든 멤버 변수에 대한 메모리는 생성되었지만, 변수의 타입이 Customer이므로 실제 접근 가능한 변수나 메서드는 Customer의 변수와 메서드이다. 다운캐스팅 업캐스팅된 클래스를 다시 원래의 타입으로 형 변환 하위 클래스로의 형 변환은 명시적으로 해야 함 if ( customerE instanceof GoldCustomer ) { GoldCustomer vc = (Gold.. 2023. 3. 14. 상속 클래스 상속 새로운 클래스를 정의할 때 이미 구현된 클래스를 상속받아서 속성이나 기능을 확장하여 클래스를 구현함 이미 구현된 클래스보다 더 구체적인 기능을 가진 클래스를구현해야 할 때 기존 클래스를 상속 class B extends A { } extends키워드 뒤에는 단 하나의 클래스만 올 수 있다! 자바는 단일 상속(single inheritance) 만을 지원함 상속을 구현하는 경우 상위 클래스는 하위 클래스보다 더 일반적인 개념과 기능을 가짐 하위 클래스는 상위 클래스 보다 더 구체적인 개념과 기능을 가짐 하위 클래스가 상위 클래스의 속성과 기능을 확장한다는 의미 사람 < 포유류 class Mammal{ } class Human extends Mammal{ } super 키워드 하위클래스에서 가지.. 2023. 3. 14. 배열(array) - 자료를 순차적으로 한꺼번에 관리하는 방법 배열이란? 동일한 자료형(데이터 타입)의 순차적 자료 구조 인덱스 연산자[]를 이용하여 빠른 참조가 가능 물리적 위치와 논리적 위치가 동일 배열의 순서는 0부터 시작 자바에서는 객체 배열을 구현한 ArrayList를 많이 활용함. int [] arr1 = new int[10]; int arr2 [] = new int[10]; 배열의 길이와 요소의 개수는 동일하지 않습니다. 배열을 선언하면 개수만큼 메모리가 할당되지만, 실제 요소(데이터)가 없는 경우도 있음 length속성은 배열의 개수를 반환해주기 때문에 요소의 개수와 다를 수 있다. 동일하지 않을 경우 요소의 개수에 대한 count변수를 따로 넣어야한다. 향상된 for문 사용하기 / for(변수:배열){} public class CharArrayTes.. 2023. 3. 14. 이전 1 2 3 4 5 6 다음 728x90