목록Programming/JAVA (27)
기록장
제네릭 -컴파일시 타입을 체크해 주는 기능 -객체의 타입 안정성을 높이고 형변환의 번거로움을 줄여줌 //TV객체만 저장할 수 있는 ArrayList생성 ArrayListtvList = new ArrayList(); tvList.add(new TV()); //ok tvList.add(new Audio()); //컴파일 에러. TV외에 다른 타입 저장불가 //예전에는 다른 거를 넣어도 못잡아 냈음 제네릭 도입 후 잡아 낼 수 있음 제네릭의 문법 -제네릭을 사용하면 모든 타입의 상품을 저장 할 수 있음 -잘못된 캐스팅을 할 때 문법 오류로 발생할 수 있는 문제 예방 ->강한 타입체크라고 함 제네릭 클래스와 제네릭 인터페이스 정의하기 -정의방법: 클래스명 다음에
객치지향의 특징 (1)생성자 -인스턴스가 만들어질 떄 초기값 등을 지정하는 역할을 한다 -자바에서 생성자는 해당 클래스의 이름과 같아야한다 -생성자는 인자를 다르게 하여 여러개를 가질 수 있다 - 오버로딩 //Person이라는 클래스가 있다 public class Person{ //name, age라는 속성이 있다 String name; int age; //클래스명이랑 같네 그럼 생성자 //Perseon뒤에 아무 것도 없으니까 디폴트 생성자가 된다 public Person(){ //this 나의 이름에 사람을 집어넣고 this.name="사람"; //this 나의 나이에 1을 넣는다 this.age=1; } //클래스명이랑 같네 그럼 생성자 //Perseon뒤에 인자가 있네 public Person(St..
프로세스와 쓰레드 프로세스: 실행 중인 프로그램, 자원(resources)과 쓰레드로 구분 여기서 자원은 메모리나 cpu등을 말함 쓰레드: 프로세스 내에서 실제 작업을 수행 모든 프로세서는 최소한 하나의 쓰레드를 가지고 있음 프레소스:쓰레드 = 공장:일꾼 ->스래드 1개빼고 멀티 스레드임 하나의 새로운 프로세스를 생성하는 것보다 하나의 새로운 쓰레드를 생성하는 것이 더 적은 비용이 든다 쓰레드의 구현과 실행 1) Thread클래스를 상속 import java.io.*; import java.util.*; public class GFG extends Thread { // 스레드에 대해 시작된 실행 메서드 //Thread클래스의 run()을 오버라이딩 public void run() { //작업내용 Syst..
컬렉션프레임웍 컬렉션(collection) -여러 객체(데이터)를 모아 놓은 것을 의미 프레임 웍(framework) -틀(frame)작업(work) -표준화, 정형화된 체계적인 프로그래밍 방식 +라이브러리 -자유도가 떨어지지만 프로그램의 생산성이 올라간다 -유지보수가 쉬워진 라이브러리(도서관-책-정보) -다른 사람이 모아놓은 기능 -기능만 제공 컬렉션 프레임웍(collections framework) -컬렉션(다수의 객체)을 다루기 위한 표준화된 프로그램 방식 -컬렉션을 쉽고 편리하게 다를 수 있는 다양한 객체를 제공 -java.utill패키지에 포함 jdk1.2부터 제공 컬렉션 클래스(collection class) -다수의 데이터를 저장할 수 있는 클래스(예, Vector, ArrayList,Has..
이스케이프문 \ System.out.print("hello\"world") ->hello "world 나온다 \n 두 줄로 나누기 \t 탭을 출력 math 메소드 -메소드를 실행하거나 부르려면 ()가 필요함 Math.random() 무작위 값 생성 / 매개변수 필요 x Math.min() Math.min(32,464) 32~464사이의 최소 값 찾기 Math.max() 최대 값
생성자란? 객체를 생성했을 때 어떤 작업을 수행할거야? 라는 뜻 클래스 명이랑 똑같은게 생성자임 여러개 가능(인자가 없거나 갯수가 달라야함) People Student = new People(); 이렇게 객체를 만들었으면 다른 생성자가 따로 없으면 컴파일러가 실행 시 기본적으로 People 클래스안에 People(){}를 자동으로 만들어준다 -> 객체를 만들 때 안에 있는 내용을 무조건 실행한다
package sec02.exam01; public class AnonymousExample { public static void main(String[] args) { Anonymous anony = new Anonymous(); //익명 객체 필드 사용 anony.field.wake(); //익명 객체 로컬 변수 사용 anony.method1(); //익명 객체 매개값 사용 anony.method2( new Person() { void study() { System.out.println("공부합니다"); } @Override void wake() { System.out.println("8시에 일어닙나디"); study(); } } ); } } package sec02.exam01; public cl..
package com.day3; public class HankookTire implements Tire { public void roll() { System.out.println("한국 타이어가 굴러갑니다"); } } package com.day3; public class Car { Tire frontLeftTire = new HankookTire(); Tire frontRigthTire = new HankookTire(); Tire backLeftTire = new HankookTire(); Tire backRightTire = new HankookTire(); void run() { frontLeftTire.roll(); frontRigthTire.roll(); backLeftTire.roll()..