Java #4-2 메소드 활용

/* String타입의 문자열에서 '/'를 공백(' ')으로 바꿔주는 메소드 작성 후 활용 */
public class ArrayParameter
{
static String origin = "jiniusman/jiniusman.blogspot.kr/2013";

static char[] replaceSlash(String origin)
{
char c[] = origin.toCharArray();

for(int i=0; i<c.length; i++)
{
if(c[i]=='/')
c[i] = ' ';
}

return c;
}

public static void main(String[] args)
{
System.out.println(origin);
System.out.println(ArrayParameter.replaceSlash(origin));
}
}


result)

Java tip 이클립스에서 Construct와 Getters, Setters 쉽게 설정하기

1. 클래스, 필드 선언


2. Source - Generate Constructor using Fields...


3.  Construct에 필요한 매개변수 선택


4. Source - Generate Getters and Setters...


5. 필요한 매개변수 선택(여기서는 Getters만 적용)


6. 완료


Java #4-1 클래스와 객체

클래스 관련 용어 정리

클래스 : 객체를 생성하기위한 설계도나 틀, 필드와 메소드를 가진다.
객체 : 클래스로부터 만들어진  것
필드 : 값이 저장되는 멤버 멤버변수
메소드 : 실행 가능한 함수, 객체의 행위를 구현한 함수
생성자 : 클래스의 이름과 동일한 메소드, 주로 필드의 초기값을 주어줄 때 사용

ex)
/* 상품 클래스를 만들어 초기값 세팅후 처리 */
public class Goods
{
private String name;
private int price;
private int numerOfStock;
private int numerOfSales;

public Goods(String name, int price, int numerOfStock, int numerOfSales)
{
super();
this.name = name;
this.price = price;
this.numerOfStock = numerOfStock;
this.numerOfSales = numerOfSales;
}

public String getName() { return name; }
public int getPrice() { return price; }
public int getNumerOfStock() { return numerOfStock; }
public int getNumerOfSales() { return numerOfSales; }

public static void main(String[] args)
{
Goods[] cameras = new Goods[3];

for(int i=0; i<cameras.length; i++)
{
cameras[i] = new Goods("Cannon EOS "+(i+4)+"00D", (i+1)*10+900, i, 10-i);

System.out.println("\n"+cameras[i].getName());
System.out.println("Price : $"+cameras[i].getPrice());
System.out.println("Numer Of Stock : "+cameras[i].getNumerOfStock());
System.out.println("Numer Of Sales : "+cameras[i].getNumerOfSales());
}
}
}


result)

Java #3-4 main() 메소드, Exception 처리

main() 메소드 특징

자바 응용프로그램의 실행은 main() 메소드부터 시작한다.
main() 메소드는 public 속성이다.
main() 메소드는 static 속성이다.
main() 메소드는 리턴 타입은 void이다.
main() 메소드의 인자는 문자열 배열(String [])이 전달된다.


주요 Exception

ArithemeticException 정수를 0으로 나누는 경우
NullPointerException null 레퍼런스를 참조하는 경우
ClassCastException 변환할 수 없는 타입으로 객체를 변환하는 경우
OutofMemoryException 메모리가 부족한 경우
ArrayIndexOutOfBoundsException 배열의 범위를 벗어나 접근하는 경우
IllegalArgumentException 잘못된 인자를 전달하는 경우
IOException 입출력 동작 실패하거나 인터럽스가 발생하는 경우
NumberFormatException 문자열이 나타는 숫자와 일치하지 않는 타입의 숫자로 변환하는 경우


try, catch, finally문

try 예외가 발생할 가능성이 있는 실행문장
catch 예외가 발생할 경우 처리문장
finally 예외 발생여부와 상관없이 무조건 실행되는 문장

ex)
/* 0으로 나누는 경우 */
import java.util.Scanner;

public class ExceptionSample
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int divisor, dividend;
System.out.print("divisor : ");
divisor = sc.nextInt();
System.out.print("dividend : ");
dividend = sc.nextInt();
try
{
System.out.println(divisor/dividend);
}
catch(ArithmeticException e)
{
System.out.println("divide by zero.");
}
}
}

result)







/* 범위를 벗어난 배열의 접근 */
public class ExceptionSample
{
public static void main(String[] args)
{
int[] intArray = new int[3];
try
{
for(int i=0; i<intArray.length+1; i++)
{
intArray[i] = i;
System.out.println(intArray[i]);
}
}
catch(ArrayIndexOutOfBoundsException e)
{
System.out.println("Out of Bounds.");
}
}
}

result)






Java #3-3 다차원배열

다차원배열

/*
다음 과 같은 비정방형 배열 만들기
10 11 12
20 21
30 31 32
40 41
*/
public class IrregularArray
{
public static void main(String[] args)
{
int intArray[][] = new int[4][];
intArray[0] = new int[3];
intArray[1] = new int[2];
intArray[2] = new int[3];
intArray[3] = new int[2];
for(int i=0; i<intArray.length; i++)
{
for(int j=0; j<intArray[i].length; j++)
{
intArray[i][j] = 10*(i+1)+j;
System.out.print(intArray[i][j]+" ");
}
System.out.println();
}
}
}


result)







메소드에서 배열 리턴

/* 배열을 생성, 각 원소를 인덱스 값으로 초기화하여 리턴하는 메소드 작성 */
public class ReturnArray
{
static int[] makeArray()
{
int temp[] = new int[5];
for(int i=0; i<temp.length; i++)
temp[i] = i;

return temp;
}

public static void main(String[] args)
{
int intArray[] = makeArray();

for(int i=0; i<intArray.length; i++)
System.out.println("intArray["+i+"] =" +" "+intArray[i]+" ");
}
}


result)