package ex0722;

public class Ex02_Inheritance {
	public static void main(String[] args) {
		Sample2 ss = new Sample2();
		ss.disp();
		
		
	}
}
class Test2 {
	int a=10;
	int b=20;
	
	public void print() {
		System.out.println(a+":"+b);
	}
}

class Sample2 extends Test2 {
	int b=100;
	int x=200;
	int y=300;
	
	public void disp() {
		int x=50;
		System.out.println("a:"+a); // 10, super 클래스의 a필드
		System.out.println("b:"+b); // 100, 자신클래스의 b필드 
		System.out.println("super.b:"+super.b); // 20, super 클래스의 b필드
		System.out.println("x:"+x); // 50, 지역변수
		System.out.println("this.x:"+this.x); // 200, 자신클래스의 x필드
		System.out.println("y:"+y); // 300, 자신클래스의 y필드
	}
}

this.a // 내 자신의 필드 a
super.a // 아버지의 필드 a

this(10); // 자신의 클래스에서 다른 생성자를 호출

super(); 
super(10);

package ex0722;

public class Ex01_Inheritance {
	public static void main(String[] args) {
		Sample1 s = new Sample1();
		
		System.out.println(s.c); // 상위 클래스 필드 접근
		s.print(); // 상위 클래스 메소드 접근
		
		s.disp(); //
	}
}
class Test1 { // 상위클래스 : Object
	private int a =10; // 하위 클래스도 접근 할 수 없다.
	int b=20;		   // 동일한 패키지에서만 접근 할 수 있다.
	protected int c=30;// 동일한 패키지 및 하위 클래스는 어디에서나 접근할 수 있
	public int d=40;   // 모두 접근 할 수 있다. 
	
	public void print() {
		System.out.println(a+":"+b+":"+c+":"+d);
	}
}

class Sample1 extends Test1 { // 상속, 자바는 단일 상속만 지원한다.
	int x =10;
	
	public void disp() {
		// System.out.println(a); // 컴파일 오류. 상위 클래스의 private 접근 제어자는 접근 불가
		
		System.out.println("상위클래스에서 물려 받은 필드 : "+b+","+c+","+d);
	}
}

'쌍용강북교육센터 > 7월' 카테고리의 다른 글

0722_Ex03_Inheritance : 생성자  (0) 2021.07.22
0722_Ex02_Inheritance : 상속  (0) 2021.07.22
0721_Ex02_NumberFormat : Java API  (0) 2021.07.21
0721_Ex01_NumberFormat : Java API  (0) 2021.07.21
0720_복습_읽어보기  (0) 2021.07.21
import java.text.NumberFormat;
import java.text.ParseException;

public class Ex02_NumberFormat {

	public static void main(String[] args) {
		String s1 = "1000";
		String s2 = "1,234"; 
		String s3 = "4567.12";
		// int a = Integer.parseInt(s2); 런타임 오류(문자열에 , 가 있어서)
		int a = Integer.parseInt(s2.replaceAll(",", ""));
		System.out.println(a);
		
		// 문자열 -> 숫자
		NumberFormat nf = NumberFormat.getInstance();
		
		// Number : Integer, Long, Double 등의 상위 클래스
		// Integer, Long, Double 클래스는 서로 상하(상속) 관계가 성립되지 않는다. 서로 형변환 불가
		
		try {
			// 예외를 가지고 있는 코드 : 프로그램 실행중 예외가 발생하면 catch블럭을 실행
			Number n1 = nf.parse(s1);
			Number n2 = nf.parse(s2);
			Number n3 = nf.parse(s3);
			
			System.out.println(n1); // 1000
			System.out.println(n2); // 1234
			System.out.println(n3); // 4567.12
			
			// System.out.println(n1 + 1000); // 컴 오류. n1은 객체이며 사칙연산 불가
			
			// Integer ob = (Integer)n1; // Number를 Integer로 형 변환. 런타임 오류(Long을 Integer로 형변환 해서)
			
			Long ob = (Long) n1; // parse()로 형변환된 결과는 정수는 Long,실수는 Double임
			System.out.println(ob+100); // 1100
				// 실제는 ob.longValue()+100 임 
			
			// 실수를 정수형만 처리하도록
			nf.setParseIntegerOnly(true);
			Number n4 = nf.parse(s3);
			System.out.println(n4); // 4567
			
		} catch (ParseException e) {
			// 예외(에러)가 발생할 때
			e.printStackTrace(); // 에러 메시지를 출력
		} // 예외를 내포하고 있기 때문에 바로 처리할 수 없다. 
		
	}

}

'쌍용강북교육센터 > 7월' 카테고리의 다른 글

0722_Ex02_Inheritance : 상속  (0) 2021.07.22
0722_Ex01_Inheritance : 상속  (0) 2021.07.22
0721_Ex01_NumberFormat : Java API  (0) 2021.07.21
0720_복습_읽어보기  (0) 2021.07.21
0720_Ex15_Math : Java API  (0) 2021.07.21
import java.text.NumberFormat;

public class Ex01_NumberFormat {
	public static void matin(String[] args) {
    	String s;
        
        // 숫자 -> 문자열 로 서식에 맞춰 바꾸어 준다.
        // 숫자에 대한 포맷
        NumberFormat nf = NumberFormat.getInstance();
        
        int a = 12345;
        s = nf.format(a);
        System.out.println(s);
        
        S = String.format("%,d", a);
        System.out.println(s);
        
        double b = 31456.2569;
        s = nf.format(b);
        System.out.println(s); // 31,456.257 소수점 3자리까지 4번째 자리는 반올림
        
        NumberFormat nf2 = NumberFormat.getInstance();
        nf2.setMaximumFractionDigits(4); // 소수점 이하 최대 4자리
        nf2.setMinimumFractionDigits(2); // 소수점 이하 최소 2자리
        System.out.println(nf2.format(1234.456789)); // 1,234.4568
        System.out.println(nf2.format(1234)); // 1,234.00
        System.out.println(nf2.format(1234.5)); // 1,234.50
        
        // 통화에 대한 서식
        NumberFormat nf3 = NumberFormat.getCurrencyInstance();
        System.out.println("원화:"+nf3.format(12345)); // ₩12,345
        // Locale.KOREA:한국, 기본 로케일은 시스템의 로케일
        // 국가를 미국으로 변경.
        NumberFormat nf4 = NumberFormat.getCurrencyInstance(Locale.UX);
        System.out.println("달러:"+nf4.format(12345)); // $12,345.00
        
        // %에 대한 서식
        NumberFormat nf5 = NumberFormat.getPercentInstance();
        System.out.println("퍼센트:"+nf5.format(0.23)); // 23%
    }
}

 

'쌍용강북교육센터 > 7월' 카테고리의 다른 글

0722_Ex01_Inheritance : 상속  (0) 2021.07.22
0721_Ex02_NumberFormat : Java API  (0) 2021.07.21
0720_복습_읽어보기  (0) 2021.07.21
0720_Ex15_Math : Java API  (0) 2021.07.21
0720_Ex12_Date : Java API  (0) 2021.07.21

생성자

- new 라는 연산자와 꼭 같이 사용되어 객체를 생성할 때 호출됨
- 객체가 생성되면 생성자의 몸체를 실행해 초기화를 담당한다. 
- 생성자는 인스턴스 변수의 초기화 및 객체가 생성될 때 실행해야 할 작업을 위해 사용
- 자바의 모든 클래스에는 하나 이상의 생성자가 존재한다.
- 생성자는 인수를 가질 수 있으며, 중복 정의가 가능하다.

디폴트 생성자
- 생성자를 정의하지 않는 경우에 컴파일러는 인수도 없으며 
  아무런 기능도 지니지 않는 생성자를 자동 삽입하는데 이를 디폴트 생성자라 한다.

 

this
 현재 클래스의 인스턴스로 객체 자신에 대한 참조 값을 갖는다.
 this는 현재 클래스의 인스턴스를 참조하기 때문에 생성자나 인스턴스 메소드 내에서만 사용하며
 클래스 메소드에서는 사용 할 수 없다.

 

클래스 : public, 생략한 경우(default)
생성자 : 4개 전부
메소드 : 4개 전부
필드 : 4개 전부
지역변수 : 붙일 수 없음.

static 객체를 생성하지 않고 바로 접근할 수 있다.

object 는 최상위 클래스다

접근 제어자
멤버(필드, 메소드) 또는 클래스에 사용되어 외부에서 접근하지 못하도록 제한하는 역할
클래스 메소드 필드 생성자 (4곳)에 붙일 수 있다.

private : 같은 클래스에서만 접근 가능
default : 동일한 패키지에서만 접근 가능 (패키지 폴더)
protected : 동일한 패키지 및 하위클래스는 제약 없이 접근 가능
public : 제약 없이 어디서든지 접근 가능

String
문자열은 상수풀에 저장(String Constant Pool)
내용불변 (Immutable) 내용이 변경되면 새로운 영역에 메모리를 할당 받아 처리하고 이전 공간은 가비지 컬렉터의 대상이 된다.
final 클래스로 하위 클래스를 가질 수 없다.
length() 문자열의 길이
substring() 특정 위치의 문자열 추출
charAt()특정 위치의 문자 한개 추출
equals() 내용을 비교
equalsIgnoreCase 대소문자 비교안하고 내용 비교
startswith
endswith
compareTo 차이를 ASCII코드로 반환함 문자열은 부등호로 비교불가
indexOf 
lastIndexOf
replace
replaceAll
split (특정패턴으로 분리해서 배열로 리턴받는다)
matches() 해당패턴이 존재하는지 안하는지 
format()
getByte() ASCII코드 값으로 바꿔서 저장

StringBuffer, StringBuilder
toString 클래스명@해쉬코드
Integer parseInt 문자열을 정수로 바꿈. (,나 .이 있으면 안됨)
Integer toString 숫자를 문자열로 바꿀때

 

=================

최근 몇 일 간 복습한 것 읽어보면서 포스팅

'쌍용강북교육센터 > 7월' 카테고리의 다른 글

0721_Ex02_NumberFormat : Java API  (0) 2021.07.21
0721_Ex01_NumberFormat : Java API  (0) 2021.07.21
0720_Ex15_Math : Java API  (0) 2021.07.21
0720_Ex12_Date : Java API  (0) 2021.07.21
0720_Ex06_Calendar : Java API  (0) 2021.07.20
public class Ex15_Math {

	public static void main(String[] args) {
		// 크거나 같은 정수 중 가장 적은 정수
		System.out.println(Math.ceil(10.0)); // 10.0
		System.out.println(Math.ceil(10.5)); // 11.0
		System.out.println(Math.ceil(-10.5));// -10.0
		
		// 적거나 같은 정수중 가장 큰 정수
		System.out.println(Math.floor(10)); // 10.0
		System.out.println(Math.floor(10.5)); // 10.0
		System.out.println(Math.floor(-10.5)); // -11
		
		double a;
		// sin 30도
		a = Math.sin(30 * Math.PI / 100); // 라디안
		System.out.println(a);
		
		a = Math.sqrt(2.0); // 제곱근
		System.out.println(a);
		
		a = Math.pow(2, 10); // 2의 10승
		System.out.println(a);
		
		a = Math.random(); // 0<=수<1 사이의 난수
		System.out.println(a);
		
		
	}

}

Math 클래스안에있는 메소드는 이런 것들이 있고 대충 수학관련해서 들어있음..

'쌍용강북교육센터 > 7월' 카테고리의 다른 글

0721_Ex01_NumberFormat : Java API  (0) 2021.07.21
0720_복습_읽어보기  (0) 2021.07.21
0720_Ex12_Date : Java API  (0) 2021.07.21
0720_Ex06_Calendar : Java API  (0) 2021.07.20
0720_Ex05_Calendar : Java API  (0) 2021.07.20
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Ex12_Date {
	public static void main(String[] args) {
		Date date = new Date(); // 현재 시스템의 시간으로 Date 객체 생성
		System.out.println(date); // Tue Jul 20 15:06:29 KST 2021
		
/*		
		// 권장하지 않음(사용하지 말 것을 권장함)
		int y = date.getYear()+1900;
		int m = date.getMonth()+1;
		int d = date.getDate();
		System.out.println(y+"-"+m+"-"+d);
*/
		
		// 1970년 1월 1일 0시 0분 0초를 기준으로 밀리초 단위로 혼산하여 반환
		long t = date.getTime();
		System.out.println(t);
		
		Date date2 = new Date(1676761482859L);
		System.out.println(date2);
		
		// date 객체의 날짜가 date2의 객체 값보다 이후 날짜인지 boolean으로 반환
		
		// SimpleDateFormat : 문자열 <-> Date
		// Date 객체의 날짜를 문자열로 출력하기
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy년 MM월 dd일 HH:mm:ss");
		String str = sdf.format(date);
		System.out.println(str);
		
		// 문자열을 Date로 변환
		str = "2000-10-07"; // 하이픈이 있으면 밑에도 하이픈 적어야함. 같아야함!
		SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
		
		try {
			// 예외를 내포하고 있는 코드
			Date date3 = sdf2.parse(str);
			
			String s = sdf.format(date3);
			System.out.println(s);
		} catch (ParseException e) {
			// 예외가 발생할 때 실행 할 코드
			e.printStackTrace();
		}

	}
}

try는 아직 제대로 배우지는 않았음.

향후 수업에서 배울 예정! 그냥 있다 정도만 기억할 것.

'쌍용강북교육센터 > 7월' 카테고리의 다른 글

0720_복습_읽어보기  (0) 2021.07.21
0720_Ex15_Math : Java API  (0) 2021.07.21
0720_Ex06_Calendar : Java API  (0) 2021.07.20
0720_Ex05_Calendar : Java API  (0) 2021.07.20
0720_Ex04_StringTokenizer : Java API  (0) 2021.07.20
import java.util.Calendar;
import java.util.Scanner;

public class Ex06_Calendar {

	public static void main(String[] args) {
		// 날짜를 입력받아 요일을 출력하기
		// 날짜 ? 2021-07-20
		// 2021-07-20은 일요일입니다.
		// 입력받은 날짜 형식이 yyyy-mm-dd형식이 아니면 재입력
		Scanner sc = new Scanner(System.in);
		String input;
		
		do {
			System.out.print("날짜[yyyy-mm-dd] ? ");
			input = sc.next();
		} while(! input.matches("^(\\d{4}-\\d{2}-\\d{2})$"));
		// ^는 첫번째 $는 마지막. 4개숫자-2개숫자-2개숫자 형식으로
		String [] ss = input.split("-"); // StringTokenizer 대신 split을 사용하면 더 쉽다!
		int y = Integer.parseInt(ss[0]);
		int m = Integer.parseInt(ss[1]);
		int d = Integer.parseInt(ss[2]);
		String week;
		
		Calendar cal = Calendar.getInstance();
		cal.set(y, m-1, d);
		System.out.printf("%tF는 %tA 입니다.\n", cal, cal);
		
		y = cal.get(Calendar.YEAR);
		m = cal.get(Calendar.MONTH)+1;
		d = cal.get(Calendar.DATE);
		week = String.format("%tA", cal);
		System.out.printf("%04d-%02d-%02d는 %s입니다.\n", y, m, d ,week);
		// 남는 자리수는 0으로 채워줌
		
		String[] ww=new String[] {"일","월","화","수","목","금","토"};
		week = ww[cal.get(Calendar.DAY_OF_WEEK)-1];
		System.out.println("요일은"+week+"요일 입니다.");
		System.out.println("-------------------------");
		
		sc.close();
	}

}

'쌍용강북교육센터 > 7월' 카테고리의 다른 글

0720_Ex15_Math : Java API  (0) 2021.07.21
0720_Ex12_Date : Java API  (0) 2021.07.21
0720_Ex05_Calendar : Java API  (0) 2021.07.20
0720_Ex04_StringTokenizer : Java API  (0) 2021.07.20
0720_Ex03_StringBuilder : Java API  (0) 2021.07.20

+ Recent posts