0. ๋ณต์ต
(1) (์ ์ )๋ฐฐ์ด
- ๋ฐฐ์ด์ ์ ์ธ (๋ฐฐ์ด ๋ณ์์ ์ ์ธ) // ๋ฐฐ์ด์ ๊ฐ๋ฅดํฌ ๋ณ์ ์ ์ธ
-> int[] scores;
-> int scores[];
-> int scores[] = new int[4]; // ๋์ค์ ๊ฐ ์์์ ๊ฐ ๋ฃ์ด์ฃผ๊ธฐ
-> int scores[4]; (X) // ๋ฐฐ์ด์ ํฌ๊ธฐ๋ ๋ฐฐ์ด ๊ฐ์ฒด๊ฐ ์์ฑ๋ ๋ ์ง์ ํ ์ ์๋ค. ์ ์ธํ ๋๋ X
1. ๋์ ๋ฐฐ์ด๊ณผ ๊ฐ์ฒด ๋ฐฐ์ด
(1) ๋์ ๋ฐฐ์ด
- ArrayList ํด๋์ค ์ ๊ณต
-> ArrayList ๊ฐ์ฒด ์์ฑ
: ArrayList<์ฐธ์กฐํ์ > ์ฐธ์กฐ๋ณ์ = new ArrayList<>();
// ๊ธฐ์ดํ์ : Integer, Long, Short, Float, Double ๋ฑ ์ฌ์ฉ
// int ํ์ ์ Integer ์ฌ์ฉ
*์๊ธ์๊ฐ ๋๋ฌธ์์! (ํด๋์ค์ด๊ธฐ ๋๋ฌธ)
(2) ์์ ์ ๊ทผ //ArrayList ํด๋์ค์ ํฌํจ๋๋ ๋ฉ์๋
- ์ฐธ์กฐ๋ณ์.add(๋ฐ์ดํฐ) : ์์๋๋ก ๋ฆฌ์คํธ๋ฅผ ์ถ๊ฐ, ๋ฐฐ์ด ์ฌ์ด์ฆ ์ด๊ณผ ์ ์ด๊ธฐ ์ค์ ๋ ์ฌ์ด์ฆ๋งํผ ์๋์ผ๋ก ์ฌ์ด์ฆ๊ฐ ์ฆ๊ฐํจ, ์ธ๋ฑ์ค๋ฅผ ์ถ๊ฐ๋ก ์ง์ ํด์ฃผ๋ฉด ํด๋น ์ธ๋ฑ์ค์ ๊ฐ์ ์ฝ์ //add((index), val)
- ์ฐธ์กฐ๋ณ์.remove(์ธ๋ฑ์ค ๋ฒํธ or val) : ํด๋น ์ธ๋ฑ์ค์ ๊ฐ or ํด๋น ๊ฐ ์ค ์ฒซ๋ฒ์งธ ๊ฐ ์ญ์
- ์ฐธ์กฐ๋ณ์.get(์ธ๋ฑ์ค ๋ฒํธ) : ํด๋น ์ธ๋ฑ์ค์ ๊ฐ ๋ฐํ
- ์ฐธ์กฐ๋ณ์.size() : ์์ ๊ฐ์ ๋ฐํ
import java.util.ArrayList; //๋์ ๋ฐฐ์ด ํด๋์ค ArrayList importํด์ค
import java.util.Scanner;
public class ArrayListDemo {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
ArrayList<Integer> scores = new ArrayList<>();
int data;
int sum = 0;
while ((data = in.nextInt()) >= 0)
scores.add(data);
for (int i = 0; i < scores.size(); i++)
sum += scores.get(i);
System.out.println("ํ๊ท = " + sum / scores.size());
}
}
-> import java.util.ArrayList // ArrayListํด๋์ค ํฌํจํด์ค
-> ArrayList<Integer> scores = new ArrayList<>();
// ํ์ ์ด intํ์ธ scores๋ผ๋ ๋์ ํ ๋น ๋ฐฐ์ด ์ ์ธ (scores๋ผ๋ ๋ณ์๊ฐ ๊ฐ๋ฅดํค๋ ๋ฐฐ์ด)
-> data = in.nextInt() // ์ ์(int)๋ฅผ ์ ๋ ฅ๋ฐ์ data์ ์ ์ฅ
-> scores.add(data) // ์์๋๋ก data๊ฐ์ scores์ ์ ์ฅ (
-> scores.size() // ๋ฐฐ์ด scores์ ํฌ๊ธฐ ๋ฐํ
-> scores.get(i) // [i]๋ฒ์งธ ๊ฐ ๋ฐํ
(3) ๊ฐ์ฒด ๋ฐฐ์ด
- ๊ฐ์ฒด ๋ฐฐ์ด์ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ๋ ์ฃผ์๋ฅผ ์์๋ก ๊ตฌ์ฑ
// ์์๊ฐ = ๊ฐ์ฒด์ ์ฃผ์
-> Ball[] balls = new Ball[5];
// 5๊ฐ์ Ball ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๊ฒ์ด ์๋๋ผ 5๊ฐ์ Ball ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ ๋ณ์๋ฅผ ์ค๋น
// ์์ฑ์๋ฅผ ํธ์ถํ์ฌ Ball ๊ฐ์ฒด๋ฅผ ์์ฑํด์ผ ํจ
class Circle {
double radius;
public Circle(double radius) {
this.radius = radius;
}
public double getRadius() {
return radius;
}
double findArea() {
return 3.14 * radius * radius;
}
}
public class CircleArrayDemo {
public static void main(String[] args) {
Circle[] circles = new Circle[5];
for (int i = 0; i < circles.length; i++) {
circles[i] = new Circle(i + 1.0);
System.out.printf("์์ ๋์ด(๋ฐ์ง๋ฆ : %.1f) = %.2f\n", circles[i].radius, circles[i].findArea());
}
}
}
-> Circle[] circles = new Circle[5]
// ๋ฐฐ์ด ๊ณต๊ฐ ์ ์ธ (ํฌ๊ธฐ = 5)
-> circles[i] = new Circle(i + 1.0);
// ๊ฐ ์์์ ์ฃผ์๊ฐ ์ ์ฅ
// ๊ฐ์ฒด๋ฅผ ์์ฑํด์ ์์๊ฐ์ ์ ์ฅ(๊ฐ๋ฅดํค๋๋ก ํจ)
(4) ๊ฐ์ฒด ์ธ์์ ๊ธฐ์ดํ์ ์ธ์
// ๊ฐ์ฒด = ์ฐธ์กฐํ์
public class ObjectArgumentDemo {
public static void main(String[] args) {
Circle c1 = new Circle(10.0);
Circle c2 = new Circle(10.0);
zero(c1);
System.out.println("์(c1)์ ๋ฐ์ง๋ฆ : " + c1.radius);
zero(c2.radius);
System.out.println("์(c2)์ ๋ฐ์ง๋ฆ : " + c2.radius);
}
public static void zero(Circle c) { //(a)
c.radius = 0.0;
}
public static void zero(double r) { //(b)
r = 0.0;
}
}
-> zero(c1) // ์์ฑ์ (a) ํธ์ถ
-> c1.radius = 0.0 // 10.0 -> 0.0
// ์ฐธ์กฐํ์ (call by reference)
-> zero (c2.radius) // ์์ฑ์ (b) ํธ์ถ
-> c2.radius // 10.0 -> 10.0 (radius๊ฐ์ ๋ณต์ฌํ r๊ฐ = 0.0, but ์์ฑ์ ๋๋๋ฉด r๋ ํจ๊ป ์๋ฉธ)
// ๊ฐ์ ์ด๋ฆ์ ์์ฑ์(but ๋งค๊ฐ๋ณ์ ํ์ ๋ค๋ฆ) = ๋ฉ์๋ ์ค๋ฒ๋ก๋ฉ
2. ์์
- ์์: ์๋ ๊ฐ ๋ถ๋ชจ ์ฌ์ฐ์ ์์๋ฐ์ ์ฌ์ฉํ๋ฏ์ด ์์ ๊ฐ์ฒด๋ฅผ ์์๋ฐ์ ํ์ ๊ฐ์ฒด๊ฐ ์์ ๊ฐ์ฒด์ ๋ฉ์๋์ ํ๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒ
- ๋ถ๋ชจ ํด๋์ค (์ํผ ํด๋์ค, ๊ธฐ๋ณธ ํด๋์ค)
- ์์ ํด๋์ค (์๋ธ ํด๋์ค, ํ์ ํด๋์, ํ์ฅ ํด๋์ค)
- ์์ ํด๋์ค๋ ๋ถ๋ชจ ํด๋์ค์์ ๋ฌผ๋ ค๋ฐ์ ๋ฉค๋ฒ๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ๊ฑฐ๋ ๋ณ๊ฒฝํ ์ ์๊ณ , ์๋ก์ด ๋ฉค๋ฒ๋ ์ถ๊ฐํ ์ ์์
(1) ์์์ ์ ์ธ
- extends ํค์๋ ์ฌ์ฉ
-> ๋ถ๋ชจ ํด๋์ค ์ ์ธ: class ๋ถ๋ชจํด๋์ค์ด๋ฆ {..} // ๊ทธ๋ฅ ๊ณ์ ํด์๋ ํด๋์ค ์ ์ธ์
-> ์์ ํด๋์ค ์ ์ธ: class ์์ํด๋์ค์ด๋ฆ extends ๋ถ๋ชจํด๋์ค์ด๋ฆ {..}
* ๋ค์ค ์์์ ์๋จ
(2)
public class Circle {
private void secret() {
System.out.println("๋น๋ฐ์ด๋ค.");
}
protected void findRadius() {
System.out.println("๋ฐ์ง๋ฆ์ด 10.0์ผํฐ์ด๋ค.");
}
public void findArea() {
System.out.println("๋์ด๋ (π*๋ฐ์ง๋ฆ*๋ฐ์ง๋ฆ)์ด๋ค.");
}
}
public class Ball extends Circle {
private String color;
public Ball(String color) {
this.color = color;
}
public void findColor() {
System.out.println(color + " ๊ณต์ด๋ค.");
}
public void findVolume() {
System.out.println("๋ถํผ๋ 4/3*(π*๋ฐ์ง๋ฆ*๋ฐ์ง๋ฆ*๋ฐ์ง๋ฆ)์ด๋ค.");
}
}
-> public class Circle // ๋ถ๋ชจ ํด๋์ค
// secret() : private - ํด๋น ํด๋์ค ๋ด๋ถ๋ง ์ ๊ทผ ํ์ฉ
// findRadius() : protected - ๋ถ๋ชจ&์์ ํด๋์ค๋ง ์ ๊ทผ ํ์ฉ
// findArea() : public - ์ด๋์์๋ ์ ๊ทผ ํ์ฉ
-> public class Ball extends Circle // ์์ ํด๋์ค
// ๋ถ๋ชจ ํด๋์ค์ ๋ฉ์๋๋ฅผ ๊ฐ์ง๊ณ ์์
// Ball(String color) : ์์ฑ์
// findColor() : ์์ ํด๋์ค์์ ์ถ๊ฐํ ๋ฉ์๋
// findVolume() : ์์ ํด๋์ค์์ ์ถ๊ฐํ ๋ฉ์๋
public class InheritanceDemo {
public static void main(String[] args) {
Circle c1 = new Circle();
Ball c2 = new Ball("๋นจ๊ฐ์");
System.out.println("์ :");
c1.findRadius();
c1.findArea();
System.out.println("\n๊ณต :");
c2.findRadius();
c2.findColor();
c2.findArea();
c2.findVolume();
}
}
-> Circle c1 = new Circle();
// ๋ถ๋ชจ ํด๋์ค Circle์ ๊ฐ์ฒด c1 ์์ฑ
-> c1.findRadius() = "๋ฐ์ง๋ฆ์ด 10.0์ผํฐ์ด๋ค."
-> c1.findArea() = "๋์ด๋ (π*๋ฐ์ง๋ฆ*๋ฐ์ง๋ฆ)์ด๋ค."
-> Ball c2 = new Ball("๋นจ๊ฐ์")
// Circle์ ์์ ํด๋์ค Ball์ ๊ฐ์ฒด c2 ์์ฑ
-> c2.findRadius() // ๋ถ๋ชจ ํด๋์ค์ ๋ฉ์๋
= "๋ฐ์ง๋ฆ์ด 10.0์ผํฐ์ด๋ค."
-> c2.findColor() // ์์ ํด๋์ค์์ ์ถ๊ฐํ ๋ฉ์๋
= "๋นจ๊ฐ์ ๊ณต์ด๋ค"
-> c2.findArea() // ๋ถ๋ชจ ํด๋์ค์ ๋ฉ์๋
= "๋์ด๋ (π*๋ฐ์ง๋ฆ*๋ฐ์ง๋ฆ)์ด๋ค."
-> c2.findVolume() // ์์ ํด๋์ค์์ ์ถ๊ฐํ ๋ฉ์๋
= "๋ถํผ๋ 4/3*(π*๋ฐ์ง๋ฆ*๋ฐ์ง๋ฆ*๋ฐ์ง๋ฆ)์ด๋ค."
3. Rectangle ํด๋์ค, OddEven ํด๋์ค
import java.util.Scanner;
public class Rectangle {
public static void main(String[] args) {
System.out.print("์ง์ฌํ์ ๊ฐ๋ก ๊ธธ์ด๋ฅผ ์
๋ ฅํ์ธ์ : ");
Scanner in = new Scanner(System.in);
int width = in.nextInt();
System.out.print("์ง์ฌํ์ ์ธ๋ก ๊ธธ์ด๋ฅผ ์
๋ ฅํ์ธ์ : ");
int height = in.nextInt();
System.out.print("์ง์ฌ๊ฐํ์ ๋์ด๋ " + (double)width*height +"์
๋๋ค.");
in.close();
}
}
import java.util.Scanner;
public class OddEven {
public static void main(String[] args) {
System.out.print("์ ์๋ฅผ ์
๋ ฅํ์ธ์ : ");
Scanner in = new Scanner(System.in);
int num = in.nextInt();
System.out.println( (num%2 == 0? "์ง์" : "ํ์") );
}
}