필기한..ppt말고 원본을 가지고 와버렸다..........
( 와아... 정리할게..밀렸다.........
10년동안의 5개 도시의 신생아 총합 (1월에는 101,102,103,103... 2월 201 202 203… 120개월 12001 12002 12003… 반복)
package chapter04;
public class BabySum {
public static void main(String[] args) {
int baby[][] =new int [120][];
//120개월. 즉 10년
int sum =0;
for (int i = 0; i < baby.length; i++) {
//i는 달에 해당됨 [0]~[11]
baby [i] = new int[5];
//처음에 int baby[][] =new int [120][];대신
//int baby[][] =new int [120][5];를 한 것과 동일함.
for (int j = 0; j < baby[i].length; j++) {
//j는 나라의 수 :5개
baby[i][j] = (i+1)*100+(j+1);
//i와 j는 0부터 시작되므로 +1을 해줘야함.
sum +=baby[i][j];//10년동안의 신생아 수
}
}
System.out.println("10년간 5개 나라의 총 신생아수는 "+sum);
}
}
양의 정수 10개를 입력받아 배열에 저장하고, 배열에 있는 정수 중에서 3의 배수만 출력하는 프로그램 작성
package chapter04;
import java.util.Scanner;
public class MutipleOfThree {
public static void main(String[] args) {
int array[]= new int [10];//10개의 정수 저장
Scanner scanner = new Scanner(System.in);
System.out.println("양의 정수 10개를 입력하시오>>");
for (int i = 0; i < array.length; i++) {//배열 크기(10)을 반복
array[i] = scanner.nextInt();//배열에 10개의 정수를 저장
}
// 이 과정이 없으면 3의 배수 하나 입력하게 되면 바로 결과값이 나와버림.
//그래서 꼬옥.. 있어야함
System.out.println("3의 배수는");
for (int i = 0; i < array.length; i++) {
if ((array[i] % 3 == 0)) {//[i]에 저장된 정수가 3의 배수인경우
System.out.print(+array[i]+" ");
}
}
scanner.close();
}
}
Song 클래스 작성
필드 : 노래 제목 title
가수를 나타내는 artist
발매년도 year
가수의 국적 country
Song클래스에
생성자 2개
show메소드
"1978년 스웨덴국적의 ABBA가 부른 Dancing Queen" 출력
(필드 확인 가능하며 생성자 한번에 생성함)
(우클릭-source- g c u f)으로 확인가능
package chapter04;
public class Song {
String title;
String artist;
int year;
String country;
void show() {
System.out.println(year + "년 " + country + "국적의 " + artist + "가 부른 " + title);
};
public Song() {//기본 생성자
};
public Song(String title, String artist, int year, String country) {
this.artist = artist;
this.country = country;
this.title = title;
this.year = year;
}
//매개변수가 있는 생성자(초기화)
public static void main(String[] args) {
Song like = new Song("Dancing Queen", "ABBA", 1978, "스웨덴");
like.show();
}
}
:한 클래스 내에 같은 이름의 메소드를 여러개 정의하는 것
오버로딩의 조건
- 메소드 이름이 같아야한다.
- 매개변수의 개수 또는 타입이 달라야한다.
- 반환 타입은 관계 없음.
1.
class MethodOverloading {
public int getSum(int i, int j) {
return i + j;
}
public int getSum(int i, int j, int k) {
return i + j + k;
}
}
2.
class MethodOverloadingFail {
public int getSum(int i, int j) {
return i + j;
}
public double getSum(int i, int j) {
return (double)(i + j);
}
}
예시)
: 클래스의 묶음. 하나의 디렉토리.
:멤버 또는 클래스에 사용되며 , 해당하는 멤버 또는 클래스를 외부에서 접근 하지 못하도록 제한하는 역할
접근 제어자가 사용될 수 있는 곳 : 메소드, 생성자, 클래스, 멤버변수
public > protected > (default) > private
public : 접근 제한 없음
protected : 같은 패키지 + 자손클래스
(default) : 같은 패키지
private : 같은 클래스
public
protected
(default)
private
package chapter04;
class Circle3{
int radius;;//속성
public Circle3(int radius) { //int radius라는 참조변수가 있는 생성자
this.radius = radius;
}
public double getArea(){
return 3.14*radius*radius;
}//public은 접근지정자, getArea이라는 메소드 //return 필요
// public static void main(String[] args) {
// System.out.println("2");
// }
}
// class aaa : class 앞에 아무것도 없다.(public같은거)
//=> 이런 경우 이걸 디폴트 클래스라고 함
// 앞에 public 넣을 경우 오류 발생(public 클래스는 자바파일당 하나만 가능하기 때문)
public class CircleArray {
public static void main(String[] args) {
// System.out.println("1");
Circle3[] c;// 점하나 그림..?
c = new Circle3[5];
//참조변수 5개. 이걸 가지고 객체 생성(점 5개)
for (int i = 0; i < c.length; i++) {//c.length =5 반복
c[i] = new Circle3(i);//i는 0~4까지 객체 5개
//
}
for (int i = 0; i < c.length; i++) {//c.length =5 반복
System.out.println((int)c[i].getArea()+" ");
// 반지름이 0에서 4까지의 원의 넓이 출력
// 결과
// 0
// 3
// 12
// 28
// 50
}
}
}
package chapter04;
import java.util.Scanner;
class Book3{
String title, author; //속성 2개
// public Book3() {}// 기본 생성자
public Book3(String title, String author) {
this.title = title;
this.author = author;
}
}//디폴트 클래스
public class BookArray {
public static void main(String[] args) {
Book3[] book = new Book3[2];// 두개의 점 존재(book 객체)
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < book.length; i++) {//book.length=2 // 2번반복
System.out.print("제목>>");
String title = scanner.nextLine();
System.out.print("저자>>");
String author = scanner.nextLine();
book[i] = new Book3(title, author);
//객체 생성, 생성자안에 있는 매개변수(title, author)
//안에 값을 넣을 수 있음(객체속성 title, author에 값 저장)
// 두개의 객체에 값이 들어감
}
for (int i = 0; i < book.length; i++) {
System.out.print("("+book[i].title+","+book[i].author+")");// 배열 객체 출력
}
scanner.close();
}
}
//결과
제목>>사랑의 기술
저자>>메리히 프롬
제목>>시간의 역사
저자>>스티븐 호킹
(사랑의 기술,메리히 프롬)(시간의 역사,스티븐 호킹)
package chapter04;
//
public class ArrayPrarmeterEx {
static void printCharArray(char a[]) {
for (int i = 0; i < a.length; i++) {
System.out.print(a[i]);
}
System.out.println();
}// 반환타입
static void replaceCharArray(char a[]) {
for (int i = 0; i < a.length; i++) {
if (a[i] == ' ') {
a[i]=',';
}
}
}// 반환타입
public static void main(String[] args) {
char c [] = {'T','h','i','s',' ','i','s',' ','a',' ','p','e','n','c','i','l','.'};
printCharArray(c);
replaceCharArray(c);//replaceCharArray설정
printCharArray(c);//replaceCharArray값이 나옴
}
}
//결과
//This is a pencil.
//This,is,a,pencil.
package chapter04;
public class RandamNumber {
//이케..푸는게 맞나...?내가 한거
//문제 : main 메소드 설계, 변수들, rNumber :1부터 10사이의 정수
//알고리즘
//1. 1부터 10사이의 정수를 임의로 만든다.
//2. 숫자 출력
//3. 7이라는 숫자 출력시 종료
public static void main(String[] args) {
for (int i = 0; i <10000000; i++) {
int rNumber = (int) (Math.random()*10);
if (rNumber==7) {
System.out.println(rNumber);
break;
}
System.out.println(rNumber);
}
또는
while(true) {
int rNumber = (int) (Math.random()*10);
if (rNumber==7) {
System.out.println(rNumber);
break;
}
System.out.println(rNumber);
}
}
}
또는
package chapter04;
import java.util.Random;
public class RandamNumber {
//강사님 방법
//문제 : main 메소드 설계, 변수들, rNumber :1부터 10사이의 정수
//알고리즘
//1. 1부터 10사이의 정수를 임의로 만든다.
//2. 숫자 출력
//3. 7이라는 숫자 출력시 종료
public static void main(String[] args) {
int rNumber;
Random generator = new Random();
while (true) {
rNumber = generator.nextInt(10)+1;
System.out.println(rNumber);
if (rNumber==7) {
break;
}
}
}
}
패키지 분리 작성 문제
package etc;
public class Calc {
private int x,y;
public Calc (int x, int y) {
this.x=x;
this.y=y;
}
public int sum() {
return x+y;
}
}
package main;
import etc.Calc;
public class MainAPP {
public static void main(String[] args) {
Calc c = new Calc(10,20);
System.out.println(c.sum());
}
}
정수 10개 저장하는 배열을 만들고 1~!10까지의 범위의 정수 랜덤 생성 하여 배열에 저장 함
배열 숫자 및 평균 출력
package chapter04;
//내 방법
public class RandomTen {
public static void main(String[] args) {
int[] array = new int[10];
double sum = 0;
System.out.print("랜덤한 정수들 :");
for (int i = 0; i < array.length; i++) {
int number = (int) (Math.random() * 10 + 1);
System.out.print(number + " ");
sum += number;
}
System.out.println();
System.out.println("평균은 " + sum / 10);
}
}