인터페이스 역할: 어떤 객체가 있고 그 객체가 특정한 인터페이스를 사용한다면 그 객체는 반드시 인터페이스의 메소드들을 구현해야한다. 만약 인터페이스에서 강제하고 있는 메소드를 구현하지 않으면 이 에플리케이션은 컴파일조차 되지않는다. interface I{ public void z(); } class A implements I{//이 클래스는 인터페이스 I를 구현한다 public void z(){}//interface I 의 멤버인 public void z() 를 반드시 포함해야한다 } 몇 가지 규칙 하나의 클래스가 여러개의 인터페이스를 구현할 수 있다. 인터페이스도 상속이 된다 인터페이스의 멤버는 반드시 public이다(외부에서 제어할 수 있는 가장 개방적인 접근제어자) 다형성 다형성 : 하나..
추상이 상속을 강제하는 것이라면 final은 상속/변경을 금지하는 규제다 final로 지정된 변수에는 한번 값이 할당되면 그 값을 바꿀 수 없다. final 메소드는 상속이 안된다. 상속하려하면 오류발생 //Please don't change class name 'Main' class Calculator { static final double PI = 3.14; int left, right; public void setOprands(int left, int right) { this.left = left; this.right = right; //final로 지정된 변수에는 한번 값이 할당되면 그 값을 바꿀 수 없기 때문에 오류가 발생한다. //Calculator.PI = 6; } public v..
abstract 은 상속을 강제하는 일종의 규제 abstract 클래스나 메서드를 사용하기 위해서는 반드시 상속해서 사용하도록 강제하는 것이다 추상메소드 : 메서드의 시그니처만이 정의된 비어있는 메소드 추상클래스에는 추상 메소드가 아닌 메소드가 존재할 수 있다 메소드의 시그니처만 정의되어 있고(내용이 비어있음) 이 메소드의 구체적인 구현은 하위클래스에서 오버라이딩해야함. 인스턴스화 시킬수도없음. //Please don't change class name 'Main' abstract class A{ public abstract int b(); public void d(){ System.out.println("world"); } } class B extends A{ public int b(){return..
package classinstance; public class Calculator2 { static double PI = 3.14; // 클래스 변수인 base가 추가되었다. static int base = 0; int left, right; public void setOprands(int left, int right) { this.left = left; this.right = right; } public void sum() { // 더하기에 base의 값을 포함시킨다. System.out.println(this.left + this.right + base); } public void avg() { // 평균치에 base의 값을 포함시킨다. System.out.println((this.left + th..
package object; public class Calculator { 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); } } package object; public class Main { public static void main(String[] args) { Calculator c1 = new Calculator(); c1.setOpran..
클래스는 객체지향 프로그래밍에 있어서 가장 기본이 되는 것 대표적으로 많이 사용되는 것이 Node 클래스 하나의 처리할 데이터 단위를 나타낼때 유용 객체;실세계의 사물 Main1.java package tutorial15; public class Main1 { public static void main(String[] args) { Node1 one = new Node1(10,20); Node1 two = new Node1(30,40); Node1 result = one.getCenter(two); System.out.println(result.getX()+ " "+result.getY()); } } Node1.java package tutorial15; public class Node1 ..
배열이 다차원 구조로 생긴 것을 말함 package tutorial14; public class Main1 { public static void main(String[] args) { int N = 50; int[][]array = new int[N][N]; for(int i=0; i
배열은 데이터가 많을 때 사용하는 것 배열에 정수 받아서 최대값 찾기 package tutorial13; import java.util.Scanner; //배열 입력받고 최대 값 찾기 public class Main1 { public static int max(int a, int b) { return (a>b)?a:b; } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("생성할 배열의 크기: "); int number = scanner.nextInt(); int[] array = new int[number]; for(int i=0; i
피보나치 수열 package tutorial12; public class Main1 { //피보나치 수열 n번째 수는? //반복함수 public static int fibonacci(int number) { int one =1; int two = 1; int result = -1; if(number == 1) { return one; } else if(number ==2) { return two; } else { for(int i=2; i
반복함수는 단순히 while 혹은 for 문법을 이용하여 특정한 처리를 반복하는 방식으로 문제를 해결하는 함수 재귀함수는 자신의 함수 내부에서 자기 자신을 스스로 호출하여 재귀적으로 문제를 해결하는 함수 package tutorial11; public class Main2 { //재귀함수로 팩토리얼 만들기 public static int factorial(int number) { if(number ==1) return 1; else return number *factorial(number-1); } public static void main(String[] args) { System.out.println(factorial(10)); } } package tutorial11; public class M..
약수중 k번째로 작은 수를 찾는 프로그램 package tutorial10; public class Main1 { //k번째 약수 찾기 public static int function(int number, int k) { for(int i=1;ib) ? a: b; } public static int function(int a , int b, int c) { int result = max(a,b); result = max(result, c); return result; } public static void main(String[] args) { System.out.println(function(345,567,789)); } }
사용자 정의 함수는 정해진 특정한 기능을 수행하는 모듈 함수를 적절히 활용하면 하나의 문제를 잘게 분해할 수 있다. 함수는 각각의 모듈로서 쉽게 수정되고 보완될 수 있다는 장점이 있다. 3개 수의 최대공약수 구하기 package tutorial9; public class Main1 { //3개의 최대공약수 프로그램 //반환형, 함수명, 매개변수 public static int function(int a, int b, int c) { int min; if(a>b) { if(b>c) { min =c; } else { min=b; } } else { if(a>c) { min =c; } else { min =a; } } for(int i=min;i>0;i--) { if(a % i == 0 &&..
*자료형? 자료형이 차지하는 메모리 공간의 크기가 다름 소수점 표기 형식을 지수형식으로 출력하고 싶으면 %e를 이용하면 된다 자바에서 String의 최대크기는 어떻게 될까? String은 클래스 기반의 비원시적인 자료형이다. *연산자 + - * / -> 몫 % -> 나머지 음 일단 내가 어제부터 궁금했던거. 두가지 경우를 해봤는데 패키지가 디폴트패키지면 이 디폴트 패키지에 class 를 만들면 실행이 안되고 내가 임의로 패키지를 만들고 거기에 class 를 만들면 그건 실행이 된다 Eclipse 프로젝트 이름 변경하는 방법 Refactor >> Rename (workspace 폴더를 열어노은 상태면 에러문구 뜰수도 있으니 닫고 재시도) 초를 입력받아 몇분 몇초인지 계산하는 프로그램 ..
자바에서는 변수 초기화를 하지 않으면 사용할 수 없다. 정수는 나타내는 타비은 short, int, long 으로 다양 정수변수안에 실수를 넣으면 정수형으로 나타남. 저번 강의에서 하던걸 불러와보자. 이클립스에서 자바 프로젝트를 불러오려면 import를 하면된다. file > oepn project ... > directory> finish 불러왔다. 정수형 변수에 실수를 넣으려면 저렇게 앞에 int를 써줘야 한다 실수값을 반올림할때에는 변수에 0.5를 더하고 정수형으로 형변환을 한다 변수는 여기서 끝. 다음은 자료형 *자료형 가장 많이 사용되는 자료형 String, Array, boolean, char, int, double... String 내부적으로 substring 등의 함수..
A(변수) = 30(상수) 프로그래밍을 하기 위해서는 변수의 설정이 반드시 필요하다. 변수란 프로그램이 실행되는 동안에 언제든지 저장된 값이 변경될 수 있는 공간을 의미한다. 변수는 열린 상자로 비유할 수 있다. 상수는 닫힌 상자로 비유할 수 있다. 변수를 초기화하고, 출력하는 것 연습 해보기 final 키워드를 통해 상수를 정의하고 사용해보기 public class Main { final static double PI = 3.141592; public static void main(String[] args) { int r = 30; System.out.println( r * r * PI); } } 오버플로의 개념을 이해하기 사칙연산 프로그램 작성해보기
자바는 주력 언어로써 부상중. 특히 웹에서는 JSP, 모바일에서는 안드로이드가 아주 높은 점유율을 가지고 있다. C++과 같이 대표적인 객체지향 프로그래밍 언어이다. *자바 개별 환경 설치 구글에 jdk를 검색하고 64비트에 맞는 걸 다운 받는다 (제어판-시스템 에서 다음과 같이 확인할 수 있다) ...하려다 보니 가입해야 된단다 가입 안해도 되는 방법을 찾아봤다 https://blog.naver.com/ameeam/222185111800 오라클 로그인 없이 Java 11 다운받기 (jdk 11) Java 15는 오라클 공식 홈페이지에서 바로 다운 받을 수 있는데11버전은 오라클 계정을 만들고 로그인을 ... blog.naver.com 그 다음은 이클립스 설치 설치하고 프로젝트를 하나 ..
인원은 6명이고 개강하기 전까지 대강 두 달정도 진행할 예정이다. 주 2회로 진행할 거고 첫 2주동안은 자바를 집중해서 공부하고 그 이후로는 자바와 앱을 병행할 예정이다. 다행히 앱을 이미 좀 할 줄 아는 동기가 있어서 그 친구가 수업을 해주는 방식으로 갈 것 같다. https://www.youtube.com/playlist?list=PLRx0vPvlEmdBjfCADjCc41aD4G0bmdl4R 자바 기초 프로그래밍 강좌(Java Programming Tutorial 2017) www.youtube.com 자바 기초 프로그래밍 강좌(Java Programming Tutorial 2017) www.youtube.com 자바 개념은 여기를 보고 하고 https://edu.goorm.io/lecture/4..