Java 18

[Java] Abstract, 다형성

https://youtu.be/g3iQH71q_2I 1. Abstract(추상화) 추상화는 복잡한 문제들 중 공통적인 부분을 추출하여 추상 클래스로 제공하고, 상속을 이용하여 나머지 클래스들을 하위 클래스로 제공하는 기법이다. 추상클래스 및 추상메서드 : 기능만 정의하고, 구현은 하위클래스에서 진행한다. 추상클래스를 사용하면 상속을 강제하는 기능, 추상메서드를 사용하면 오버라이딩을 강제하는 기능을 갖는다. 즉 하위 클래스 및 메서드에서 추상클래스와 메서드의 기능을 모두 사용하게끔 강제하는 역할을 한다. abstract class A{ public abstract int b(); //추상메서드는 본체내용이 있으면 안된다. public void d(){ //추상 클래스 내 일반 메소드가 존재할 수 있다. S..

Java 2022.12.06

[Java] Super, this 연습

class SD1{ public int i1; public double d1; public SD1(int i1){ System.out.println("SD1(int i1) 생성자 수행"); this.i1 = i1*i1; //여기서 그냥 i2라는 새로운 변수로 i2 = i1 * i1 하면 안되나? System.out.println(i1+"의 제곱은 : "+this.i1); } public SD1(double d1){ System.out.println("SD1(double d1) 생성자 수행"); this.d1 = d1 * d1; System.out.println(d1+"의 제곱은 : "+this.d1); } } class Sub1 extends SD1{ public Sub1(int i1){ //매개변수가 ..

Java 2022.11.20

[Java] 상속 연습 - 라면 끓이는 프로그램

import java.util.Scanner; class Ramyon{ protected String boiled_pot; protected String boilwater(String elecpot, String water){ System.out.println(elecpot+"에 "+ water+"을 넣어 끓인다(Ramyon 클래스"); return "끓은 물"; } public void cookRamyon(String ramyon, String vegetable, int time){ boiled_pot = boilwater("전기냄비", "물"); System.out.println(boiled_pot+ "에" + ramyon + "과 " + vegetable + "를 넣고 " + time + "분간 끓..

Java 2022.11.20

[Java] 생활코딩 | 생성자, super, 메소드 오버라이딩, 메소드 오버로딩

https://youtu.be/9_5_bAVHd8c 1. 생성자 - 객체가 생성될 때 필수적으로 수행해야하는 작업을 처음에 세팅해 놓는 것 - 생성자의 이름은 클래스의 이름과 동리해야 한다. - 값을 반환하지 않는다. - 클래스에 생성자가 지정되지 않는 경우에는 묵시적 생성자가 자동으로 생성된다. (묵시적 생성자는 매개변수를 사용할 수 없다) package org.opentutorials.javatutorials.constructor; class Calculator { int left, right; public Calculator(int left, int right) { //생성자, Calculator 객체를 만들때 무조건 left와 right의 값을 지정하게 함 this.left = left; this..

Java 2022.11.13

[Java] 생활코딩 | 클래스 멤버, 인스턴스 멤버, 클래스 메소드, 유효범위

https://youtu.be/o73qn218VjM package org.opentutorials.javatutorials.classninstance; class Calculator { static double PI = 3.14; //클래스 변수 int left, right; public void setOprands(int left, int right) { this.left = left; this.right = right; } public void sum() { System.out.println(this.left + this.right); } public void avg() { System.out.println((this.left + this.right) / 2); } } public class Calc..

Java 2022.11.13

[Java] 점프 투 자바 연습문제 04장 제어문

2. while문을 사용해 1부터 1000까지의 자연수 중 3의 배수의 합을 구해 보자. public class HelloJava { public static void main(String[] args) { int n = 1, sum = 0; while (n 5){ break; } for (int j = 0 ; j *출력 i가 2일때 j = 0, 1, 2 --> **출력 i가 3일때 j = 0, 1, 2, 3 --> ***출력 i가 4일때 j = 0, 1, 2, 3, 4 --> ****출력 i가 5일때 j = 0, 1, 2, 3, 4, 5 --> *****출력 public class HelloJava { public static void main(String[] args) { int i = 0; for ..

Java 2022.09.24

[Java] 레이블이 있는 break, continue의 사용

레이블 지정 프로그램의 특정 부분을 레이블 블록으로 지정할 수 있다. 형식 - 레이블 명 : {문장 블록} public class HelloJava { public static void main(String[] args) { aa : { System.out.println("block aa"); // aa라는 레이블 블록 } bb : { System.out.println("block bb"); cc:{ System.out.println("block cc"); // bb라는 레이블 블록 안 cc라는 레이블 블록 } } 레이블을 사용한 break와 continue 활용 레이블이 없는 경우 break와 continue는 가장 가까운 반복문을 벗어나거나 가장 가까운 반복문의 시작으로 되돌아간다. 레이블이 있는 경..

Java 2022.09.24

[Java] System.out.print와 System.out.println의 차이

System.out.print 출력 System.out.println("") 출력 후 엔터 println으로 출력한 경우 import java.util.Scanner; public class HelloJava { public static void main(String[] args) { Scanner stdin = new Scanner(System.in); System.out.print("원하는 팩토리얼 값을 입력하세요:"); int fac = stdin.nextInt(); int facValue = fac; while (fac>1) { System.out.println(fac + "*"); //println사용 facValue *= --fac;} //fac = fac-1, facValue = facVal..

Java 2022.09.19

[Java] 생활코딩 | 배열

https://youtu.be/pegfdsD1IY4 배열(Array)는 연관된 정보를 모아서 관리하기 위해서 사용하는 '데이터 타입'이다. 정보를 그룹핑 하는데 사용한다. 파이썬의 리스트랑 비슷한 느낌.. 1. 배열의 정의 //배열 정의하는 방법 (1) 문자데이터타입[] 배열이름 = {데이터1, 데이터2, 데이터3, .. ,} String[] classGroup = {"최진혁", "최유빈", "한이람", "이고잉"}; //배열 정의하는 방법 (2) 문자데이터타입[] 배열이름 = new 데이터타입[원소갯수] String[] classGroup = new String[4]; classGroup[0] = "최진혁" //classGroup의 0번째 원소는 "최진혁"으로 정의 classGroup[1] = "최유빈..

Java 2022.09.17