java
-
5장 연습문제java 2023. 1. 25. 00:42
Q1 class Calculator { int value; Calculator(){ this.value = 0; } void add(int val){ this.value += val; } void minus(int val){ this.value -= val; } int getValue() { return this.value; } } public class Sample{ public static void main(String[] args){ Calculator cal = new Calculator(); cal.add(10); cal.minus(3); System.out.println(cal.getValue()); } } Q2 만약 객체변수가 100보다 큰값이될경우 100으로 제한하는 클래스 MaxLimit..
-
4장 연습문제java 2023. 1. 22. 00:32
Q1 조건문의 참과 거짓 if문을 먼저 수행한다, 조건을 충족하지못하면 else if문으로 간다. 순차적으로 수행하며 가장 먼저 조건을 만족한 else if문을 출력하고 종료 public class Sample{ public static void main(String[] args){ String a = "write once, run anywhere"; if (a.contains("wife")) { System.out.println("1"); } else if (!a.contains("everywhere")) { System.out.println("2"); } else if (a.contains("anywhere")) { System.out.println("3"); } } } //2출력 Q2 3의 배수의 ..
-
[java] 함수형 프로그래밍 (람다, 스트림)java 2023. 1. 20. 17:08
람다 (익명 함수) 1. (int a, int b) -> a+b; 입력항목 리턴값 2. (a,b) -> a+b; //인터페이스에 이미 입출력에 대한 타입정의가 되어있을경우 ,입력값의 타입은 생략이 가능 3. Integer::sum // (a,b)->a+b는 Integer.sum(int a, int b)와 동일하기때문에 축약 가능 예를 통해 살펴보자 일반적인 코드 interface Calculator{ int sum(int a, int b); } class MyCalculator implements Calculator{ public int sum(int a, int b) { return a+b; } } public class Sample{ public static void main(String[] args..
-
[java] Thread / Runnablejava 2023. 1. 20. 16:14
동작하고 있는 프로그램을 process라고한다. 보통 한개의 프로세스는 한가지일을 하지만 쓰레드를 이용하면 한 프로세스 내에서 두가지 또는 그 이상의 일을 동시에 할 수 있다. 쓰레드가 하나인경우 public class Sample extends Thread{ public void run(){ System.out.println("thread run"); } public static void main(String[] args){ Sample sample = new Sample(); sample.start(); //thread run출력 } } Thread클래스를 상속했다. Thread클래스는 start실행시 run메소드가 수행되게끔 내부적으로 설계되어있다. 쓰레드가 여러개인경우 public class Sa..
-
-
[java] this, static, 싱글톤, final, 상수java 2023. 1. 19. 18:35
인스턴스 멤버 vs 정적 멤버 인스턴스멤버는 객체마다 가지고 있는 멤버를 말하고, 즉 객체를 생성한 후 사용할 수 있는 필드나 메소드(대부분의 필드나 메소드) 정적 멤버는 클래스메모리에 위치시키고 객체들이 공유하는 멤버를 말한다, 즉 객체를 생성하지 않고 클래스로 바로 호출이 가능한 필드와 메소드 (static 필드나 static메소드) 만약 객체마다 가지고 있어야할 데이터라면 인스턴스 필드를 선언하고 객체마다 가지고 있을 필요가 없는 공용데이터라면 정적필드로 선언하는 것이 좋다. 인스턴스 필드를 포함하고 있다면 인스턴스 메소드로 선언하고 인스턴스 필드를 포함하고 있지 않다면 정적메소드로 선언한다. class HouseLee{ String lastname = "lee"; // static String l..
-
[java] 패키지와 접근제한자(public,protected/default/private)java 2023. 1. 19. 16:55
패키지는 비슷한 성격의 자바 클래스들을 모아놓은 자바의 디렉토리이다. house패키지 내부에 HouseKim, HousePark 클래스가 있고, person은 house패키지의 서브패키지이다. person패키지 내부에는 EungYongPark클래스가있다. 패키지 사용하기 HouseKim패키지 내부에 있는 클래스(HousePark)이 HouseKim클래스를 사용한다면 import를 따로할필요 없다. 외부 클래스에서 HouseKim클래스를 사용하려면 import를 해야한다. import house.HouseKim; public class Sample{ public static void main(String[] args) { HouseKim kim = new HouseKim(); } } import house..
-
[java] 입출력 ( 콘솔입출력, 파일입출력)java 2023. 1. 18. 15:05
콘솔입출력 프로그램을 실행했더니 다음과같은 문자열이 출력되었다. 생년월일(YYYY/MM/DD)을 입력해 주세요: 콘솔 출력 : 사용자에게 위와같은 문자열을 보여주는것 콘솔 입력 : 사용자가 답변을 입력하는것 (ex) 1080/01/01) 콘솔입력 자바코드에서 사용자가 입력한 문자열을 얻기 위해서는 System.in을 이용한다. import java.io.IOException; import java.io.InputStream; public class Sample{ public static void main(String[] args) throws IOException { InputStream in = System.in; //System.in은 InputStream의 객체이다. int a; a = in.rea..