package - 패키지 컴파일 방법
import
is ~ a - 상속
has ~ a - 포함 / 부속(객체 변수)
// 부속 ( has ~ a )
class A {
B b = new B();
}
// 상속 ( is ~ a )
class A extends {
B b = new B();
}
data은닉
접근제어자로 데이터 접근을 제어한다.
setter / getter
생성자 오버로딩(constructor overloading)
this - lv와 iv 구별 / this() - 생성자간의 호출
extends
overriding
super - 부모의 멤버와 구별할 때 사용 / super() - 부모의 생성자
final
객체 형변환
자료
제어
=> 소스코딩
Visudal Studio Code
eclipse - 전자정부프레임워크 (https://www.egovframe.go.kr/)
intellij - 안드로이드 개발
eclipse 설치가 압축해제
1. workspace(작업공간) - 이클립스 설정이 들어감 - 초기화하고싶으면 workspace 지우면 됨
2. 코딩하기 - 프로젝트
3. 패키지
명시적
묵시적(defualt)
4. 클래스
public class MainEx01 {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("Hello Eclipse");
System.out.println("Hello Eclipse");
Student1 stu1 = new Student1();
stu1.hakbun = "1001";
stu1.name = "홍길동";
System.out.println(stu1.hakbun);
System.out.println(stu1.name);
}
}
클래스 이름만 적고 Ctrl + 스페이스바 누르면 패키지 목록이 나옴 거기서 선택
Ctrl + Shift + o 누르면 자동으로 import 패키지 선언해줌
마우스 오른쪽클릭 -> source -> Generate Constructor Useing Fields
마우스 오른쪽클릭 -> source -> Generate Getter and Setter ...
프로젝트명 GugudanEx01
패키지명 pack
구구단을 출력하는 viewGugudan(int startdan, int enddan)을 포함하는 Util 클래스 생성
3 ~ 5단 출력하게 함
이 메서드는 재정의한 메서드로 메서드 오버라이딩 규칙에 맞지 않으면 오류를 발생시켜라 라는 정보를 컴파일러에게 전달하는 것.
체크하고 ok 누르면 생성됨
오른쪽 클릭 -> Run As -> Run Configuration 누르면 밑에 창이 뜬다
Arguments에 값 입력 후 출력
먼저 실행했던 정보만 올라가있어서 먼저 실행한 클래스파일이 출력이 됨
그래서 실행할 클래스파일에서 아무거나 실행 시키고 난 후 에 Run Configurations 하면 됨.
Main에서 이름 확인
자바 언어에서 가장 기본적으며 자주 사용되는 클래스들의 모임
import 하지 않아도 바로 사용 가능
자세한 내용은 책 참조.
문자열로 출력해준다.
public class Objectx02 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a1 = 10;
int a2 = 10;
// 내용 값 비교
System.out.println(a1 == a2);
Object o1 = new Object();
Object o2 = new Object();
// 객체 주소 비교라서 false 출력
System.out.println(o1 == o2);
//내용값(멤버필드) 비교는 equals()
System.out.println(o1.equals(o2));
String str1 = new String("박문수");
String str2 = new String("박문수");
// 객체 주소 비교라서 false 출력
System.out.println(str1 == str2);
// equals()로 내용 비교하여 true 출력
System.out.println(str1.equals(str2));
}
}
String(Immutable(불변성)클래스) - 제일많이 사용
StringBuffer
StringBuilder
public class StringEx01 {
public static void main(String[] args) {
// 문자열 저장 클래스 String / StringBuffer / StringBuilder
// 선언
String str1 = "Hello String";
String str2 = new String("Hello String");
char[] charArray = {'H', 'e', 'l', 'l', 'o'};
String str3 = new String(charArray);
// toString()
// equals() - 중요 ! 내용값 비교
System.out.println(str1.length());
System.out.println("Hello".length());
// 문자열 -> 문자 추출
System.out.println(str1.charAt(0));
// 문자열 마지막 문자 출력
System.out.println(str1.charAt(str1.length()-1));
// 문자열 -> 부분 문자열 출력
System.out.println(str1.substring(2)); // 2부터 출력
System.out.println(str1.substring(2,4)); // 2부터 4까지 출력
// 문자 위치
System.out.println(str1.indexOf('l')); // '' 안에 문자 넣으면 해당 위치값 출력
System.out.println(str1.lastIndexOf('l')); // 제일 마지막에 있는 해당 문자의 위치값 출력
// 문자열 존재여부(contains, endsWith)
System.out.println(str1.startsWith("He"));
// 문자열 치환
System.out.println(str1.replaceAll("Hello", "안녕")); // Hello를 안녕 으로 치환
// 문자열 결합 : + 이지만 메서드로도 존재할 수 있다.
System.out.println(str1.concat(" 안녕"));
// 대,소문자
System.out.println("hello".toUpperCase()); // 대문자로 출력
System.out.println("HELLO".toLowerCase()); // 소문자로 출력
// 공백 제거
String str11 = " Hello String ";
System.out.println(str11.length());
// 양옆공백 지워줌
String str12 = str11.trim();
System.out.println(str12.length()); // 양옆 공백 뺀 길이 출력
System.out.println(str12); // 양옆 공백 없이 출력됨
// 구분자 단위 분리
String str21 = "apple,banana,pineapple,kiwi";
String[] strArr = str21.split(","); // "," 단위로 구분 시키기
for(String str : strArr) {
System.out.println(str);
}
// 구분자 단위 결합 / split과는 반대기능
String str22 = String.join(",", strArr);
System.out.println(str22);
// 형식이 있는 문자열 / printf랑 비슷 /%s-%s-%s 형식의 문자열로 출력해준다
String str31 = String.format("%s-%s-%s", "aaa", "bbb", "ccc");
System.out.println(str31);
}
}
public class Capitalization {
public static void main(String[] args) {
if(args.length != 1) {
System.out.println("1개를 입력하셔야 합니다.");
} else {
// System.out.println("정상");
String[] names = args[0].split( " " );
// System.out.println(names[0]);
// System.out.println(names[1]);
// System.out.println(names[2]);
for(int i=0; i<names.length; i++) {
// name[i]번째의 단어들의 첫글자를 대문자로 바꾸고 그 뒤에 글자들을 붙여서 저장
names[i] = names[i].substring(0,1).toUpperCase() + names[i].substring(1);
}
System.out.println(String.join(" ", names));
}
}
}
문자열을 이용한 연산에 적합한 클래스
public class StringBuilderEx01 {
public static void main(String[] args) {
// TODO Auto-generated method stub
StringBuilder sb1 = new StringBuilder();
StringBuilder sb2 = new StringBuilder(100);
StringBuilder sb3 = new StringBuilder("Hello StringBuilder");
// 저장용량 버퍼의 크기
System.out.println(sb1.capacity());
System.out.println(sb2.capacity());
System.out.println(sb3.capacity());
// 저장 문자열의 길이
System.out.println(sb1.length());
System.out.println(sb2.length());
System.out.println(sb3.length());
System.out.println(sb3.charAt(0));
System.out.println(sb3.substring(4));
// 반대로 출력
System.out.println(sb3.reverse());
// replace
// 내부 문자열 변경 append / insert / delete
StringBuilder builder = new StringBuilder("사봉-용산-사가정-용마산");
builder.append("-중곡"); // 맨 뒤에 '-중곡' 추가
System.out.println(builder);
builder.insert(3, "면목-"); // '사봉-' 뒤에 '면목-' 추가
System.out.println(builder);
builder.delete(5, 8); // '-용산' 삭제
System.out.println(builder);
builder.replace(0, 1, "상"); // '사'를 '상'으로 변경
System.out.println(builder);
}
}
public class MathEx01 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 올림
System.out.println(Math.ceil(10.3));
System.out.println(Math.ceil(10.5));
System.out.println(Math.ceil(10.7));
// 내림
System.out.println(Math.floor(10.3));
System.out.println(Math.floor(10.5));
System.out.println(Math.floor(10.7));
// 반올림
System.out.println(Math.round(10.3));
System.out.println(Math.round(10.5));
System.out.println(Math.round(10.7));
// 제곱
System.out.println(Math.pow(10.0, 2.0));
// 난수
}
}
특정 클래스를 말하는 것이 아닌 부류를 말함.
Wrapper클래스는 8종류의 기본형을 객체로 만들기 위한 클래스들을 말함.
기본형마다 그에 상응하는 Wrapper클래스가 존재
앞글자가 대문자이다.
autoboxing : 자동으로 wrapper 클래스의 객체로 변경.
unboxing : 객체형인 Integer를 기본형처럼 사용할 수 있게 함.
public class WrapperEx01 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// MAX_VALUE => 상수
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MIN_VALUE);
System.out.println(Double.MAX_VALUE);
System.out.println(Double.MIN_VALUE);
// Wrapper 클래스
Integer i1 = Integer.valueOf(123);
Integer i2 = Integer.valueOf("123");
// autoboxing
Integer i3 = 123;
// 형변환
int i11 = i1.intValue();
float f11 = i1.floatValue();
System.out.println(i11);
System.out.println(f11);
// 문자열을 정수나 실수로 만들기
int i21 = Integer.parseInt("123");
float f21 = Float.parseFloat("123");
System.out.println(i21);
System.out.println(f21);
}
}
public class WrapperEx02 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int i11 = 10;
int i12 = 20;
int sum = i11 + i12;
System.out.println(sum);
// Wrapper클래스는 기본 자료형처럼 사용할 수 있다.
Integer i21 = Integer.valueOf("10");
Integer i22 = Integer.valueOf("20");
// unboxing / 계산을 위해 기본 자료형으로 자동으로 바뀜
int sum2 = i21 + i22;
System.out.println(sum2);
}
}