728x90
- 매소드
- 재귀함수
- 클래스와 인스턴스 - 자바의 핵심
boolean함수 활용하는거 어렵..
1번.
//1번 boolean을 이용해서 소수만 나오는 리턴 메소드 만들기 public class ee { public static void main(String[] args) { for(int i = 1; i<=100; i++) { if(isPrimeNumber(i)) System.out.println(i); } } //num이 2~99까지 나눠지는 수가 0이되면 소수x public static boolean isPrimeNumber(int num) { if(num==1) // return false; //i는<100보다 작아야함(=num) 근데 100이라고쓰면 오류남 for(int i=2; i<num; i++) { if(num%i==0) return false;//0이되면 pass=false } return true;//0이 아니면 위로 returnㄱㄱ } }
2번 divide(a,b) a에서b을 나눴을때 몫 구하기 / ★b는0이 되면 오류가 남. 0으로 나누는건 불가능
void에syso있으면 밑에 int 블라()가능 return 0;가능 없으면 밑에도 void, return;만 가능 why?
//2번 나눗셈 결과값 public class ee { public static void main(String[] args) { divide(4,20); divide(6,2); divide(9,0); } public static void divide(int num1, int num2) { //★위에서 syso로 출력하는 값이 없기때문에 없기때문에 void라고 써야함★ if(num2==0) { //if문 주석처리하게되면 System.out.println("0으로 나눌 수 없습니다."); return; // 값의 반환없이 메소드만 종료//return 0;이런식으로 쓰면 오류 void여서 } System.out.println("나눗셈 결과: "+(num1/num2)); } }
재귀함수
함수에서 자기자신 호출하는 것.
1번
//1번 팩토리얼(!)함수 만들기 public class ee { public static void main(String[] args) { System.out.println("3 factorial: " + factorial(3)); System.out.println("12 factorial: " + factorial(12)); } public static int factorial(int n) { if(n==1) return 1; else return n*factorial(n-1); //재귀함수 } }
2번
//2번 제곱한 수 재귀함수로 만들기 public class ee { public static void main(String[] args) { System.out.println("2의 5승 :" + powerOfTwo(5)); System.out.println("2의 7승 :" + powerOfTwo(7)); } public static int powerOfTwo(int n) { if(n==0) return 1; else return 2*powerOfTwo(n-1); //f(n) = 2*f(n-1) } } //f(3) 이라고할때 //2*f(2) //2*2*f(1) //2*2*2*f(0) //2*2*2*1
3번.
java_area패키지만들고 AreaMain클래스와 Rectagle클래스 만들어서 호환시키기
package java_area;//사각형 public class Rectagle { //사각형 넓이 구하기 int width; int height; public void setWidth(int width) { //width값 정하기 this.width = width; } public void setHeight(int height) { //height값 정하기 this.height = height; } public int getArea() { return width * height; } }
package java_area; //삼각형 public class Triangle { int width; int height; public void setWidth(int width) { this.width = width; } public void setHeight(int height) { this.height = height; } public double getArea() { return width * height / (2.0); } }
package java_area; // 삼각형,사각형 넓이 최종 public class AreaMain { public static void main(String[] args) { Rectagle rectagle = new Rectagle(); rectagle.setHeight(10); rectagle.setWidth(10); int area = rectagle.getArea(); System.out.println("사각형넓이 : "+area); //삼각형값 추가 Triangle triangle = new Triangle(); triangle.setHeight(5); triangle.setWidth(5); double triarea = triangle.getArea(); System.out.println("삼각형넓이 : "+triarea); } }

삼각형넓이까지 구하기

4번. 입출금계좌 잔액확인-코드 그림 그리고 설명할줄 알아야함
**BankAccount yoon = new BankAccount(); 파헤치기**
int i= 블라블라; //int는 형. 데이터 타입
BankAccount yoon = 블라블라; // BankAccont는 참조형=레퍼런스형. 클래스타입
()는 함수다
변수선언=메모리할당
yoon이라는 이름으로 메모리 만듦.
1.크기 (ex. int는 4byte)(ex. BankAccount는 4byte(2^32bit)) //왜인진모르겠지만 생성되는 byte값이 매우 중요한것같음
2.데이터(정수인지 실수인지) (ex. int는 정수)
new를 쓰게되면 그 다음에 쓰는 함수를 호출하는 것
new - 객체생성
**yoon.deposit(5000); 해석**
.은 해당번지 찾아가서 실행시켜라 라는뜻
여기서는 deposit찾아가서 실행시켜라
package java_area; public class BankAccount { int balance = 0; //예금잔액 public int deposit(int amount) { balance += amount; return balance; } public int withdraw(int amount) { balance -= amount; return balance; } public int checkMyBalance() { System.out.println("잔액 : "+balance); return balance; } }
package java_area; public class BankAccount00 { public static void main(String[] args) { //두개의 인스턴스(객채) 생성 BankAccount park = new BankAccount(); //이런게 객체 BankAccount kim = new BankAccount(); //각 인스턴스를 대상으로 예금을 진행 park.deposit(5000); kim.deposit(3000); //각 인스턴스를 대상으로 출금을 진행 park.withdraw(3000); kim.withdraw(200); //각 인스턴스를 대상으로 잔액을 조회 park.checkMyBalance(); kim.checkMyBalance(); } }
package java_area; public class DupRef { public static void main(String[] args) { BankAccount ref1 = new BankAccount(); BankAccount ref2 = ref1; ref1.deposit(3000); //3000 ref2.deposit(2000); //5000 ref1.withdraw(300); //4700 ref2.withdraw(200); //4500 ref1.checkMyBalance(); //4500 ref2.checkMyBalance(); //4500 } }
728x90
'코딩 > 자바 기초특강' 카테고리의 다른 글
20.11.19 THU (0) | 2020.11.19 |
---|---|
20.11.17 TUE 메소드 (0) | 2020.11.17 |
20.11.06 FRI 자바기초특강 5 (0) | 2020.11.06 |
20.11.05 THU 자바 기초특강 (0) | 2020.11.05 |
20.11.04 WED 3일차 과제 --11.05 THU 과제 피드백 (0) | 2020.11.04 |
댓글