java = object-oriented programming language. (OOP)
- object = 같은 type들. 같은 class의 객체
- 자바에서의 함수 = method !
java application program vs applets
- 자바 application program / "regular" java program-> 클래스에 main 함수가 포함되어있다. main함수 가장 먼저 실행됨 !
= main method를 사용하는 java. (class)
( main 함수는 void임. public static void main (String[] args) )
- applet = web browser에서 실행되는 자바 프로그램 (항상 windowing interface 사용. 위에꺼는 그거 또는 console사용)
System.out.println
자바에서는 모든 것이 객체로 표현되므로, 입출력을 담당하는 수단 또한 모두 객체임
C언어의 printf() 함수나 scanf() 함수처럼 자바에서는 System이라는 표준 입출력 클래스를 정의하여 제공
System이라는 클래스에는 다음 세가지 static 변수가 존재
1. System.in
2. System.out
3. System.err
(system.out = output을 스크린에 보내기 위해 사용되는 object (pdf에는 그렇게 나와있음))
그리고 println, printf, print 같은 method들 있음
- println = 위 객체가 사용하는 method -> 해당 데이터를 출력하고, 줄바꿈까지 해준다
- print -> 줄바꿈x
- printf-> formatting output가능 ! (c처럼), ( 줄바꿈 x ) (자바 5.0? 부터 지원)
• format specifiers for System.out.printf
d-int/f-실수/s-string/c-character
Byte-code & Java Virtual Machine
- 대부분의 컴파일러들은 high-level programs -> machine language 로 바로 변환
-자바는
java program -> byte-code 변환 (jvm 에 대한 machine language
Identifiers
= 변수의 이름
- 이론적으로 길이 다 가능
- 대문자,소문자 구분 (당연)
- 라이브러리에 이미 정의된 identifier들은 쓰면 안됨 (System / String / println 같은거)
- 키워드 존재 ! (static/public/private , class , void 같은거) 공개범위, 자료형, 매소드면 반환형
- 이름짓는 관습 -> 변수는 소문자부터, 띄쓰잇는데는 대문자로 구분 / 클래스는 대문자로~~
Variable
- 모든 변수는 사용되기 전에 선언되어야 함 (당연)
- >타입
primitive type ; int double, boolean. char같은 기본 타입
class type; value들이 object인 타입~
• method들을 가지고 있음 -> object.메소드이름 이렇게 부를 수 있다
* int 형
byte(1 byte), short(2), int(4), long(8)
자기보다 낮은 타입의 값에 모든 타입의 값 할당 가능
(double = int 가능. 더 세부적인 애에 더 뭉뜽그려진 애 할당 가능하다)
byte->short->int->long->float->double !! 이러캐 대입 가
constant
: 상수. 바꿀 수 없는 one specific value
ex) 10 / 'z' / "welcome to here" / false / true 이런거
(걍 문자열 자체 -> 걍 상수. 숫자랑 똑같)
String class
; 자바에는 string이 primitive type으로 존재 x -> String 클래스가 이미 정의되어있다!
- ""으로 감싸짐 double quotes
String a = "SS"; 이런식으로 사용
-Concatenation : 두 스트링 + 해서 이어붙일 수 있다 마구마구 가능. 스트링이랑 다른타입 더하면 -> 스트링됨 !!
ex) "The answer is " + 42 => "The answer is 42" (string)
- Methods ; String class는 다양한 유용한 method들을 가지고 잇음
• index ; 0부터, 띄쓰도 센다 (당연)
• 변수이름.length() -> 길이 int 반환
• .equals(다른스트링) -> 같은지 다른지 boolean 반환
• .equalsIgnoreCase(다른스트링) -> 대소문자 무시하고 같으면 true ("Mary" = "mary")
• toLowerCase()/toUpperCase() -> 소/대문자화 시킨거 리턴
• .trim() ; 앞 뒤 공백 제거 (\n이것도 제거하는듯)
• charAt(인덱스) ; 해당 인덱스의 char 리턴 (a.charAt(3) 하면 인덱스 3의 글자)
• .split(구분자) ; 문자열을 지정된 분리자로 나누고 문자열 배열 형태로 저장한다
-> String[] arr= str.split(); //지정안하면 그냥 공백으로 나눔
•.contain("~") ; 특정 문자열 포함하는지 -> true / false 리턴함
• .endsWith("~") ; 문자열 끝에 그게 잇는지 -> true / false 리턴
•.replace("a", "b") ; 앞에잇는 문자열을 b로 대체한다
• String.valueOf(값) ; 해당 값을 스트링 형식으로 변환하여 반한다
ex) String a = String.valueOf(3); ->"3"이 됨
String b = String.valueOf(true) -> "true" 가 됨 !!
( String class내에 내장되어 있는 static함수 인듯)
• substring(인덱스) ; 해당 인덱스부터 끝까지 자름 / (start, end) ; 해당 인덱스부터 end인덱스 전꺼까지 자름 (포함 ㄴㄴ)
• indexOf(스트링); 해당 스트링 시작되는 인덱스 알려줌. 없으면 -1 리턴 (Hi mom에서 mom ->3리턴, father -> -1리턴)
indexOf(스트링, 인덱스); 해당 인덱스부터 체크함. 그 스트링이 몇번 인덱스에서 첨 나오는지
ex) "Ma Ma ik".indexOf(Ma,2) = 3 , (Ma,0)=0, (Ma, 5)=-1
• lastIndexOf(string) ; 해당 스트링이 마지막으로 나올때 시작되는 인덱스 반환
"Ma Ma ik" -> 3
• compareTo ; https://mine-it-record.tistory.com/133
[JAVA] 자바_compareTo ( 값 [문자열/숫자] 비교 )
- 자바 compareTo - -마지막 수정날짜 : 2021-01-01- 과거 기록한 글이나 보기 힘든 부분도 있고 잘못 작성된 부분이 있어 내용 일부분 수정하였습니다. (잘못된 내용이 있는부분 적어주시면 바로바로
mine-it-record.tistory.com
Comments 주석
// 한줄
/* */ 여러줄
Packages & Classes
패키지 = 자바의 라이브러리. (자바는 object단위라 패키지는 class묶어놓은거임)
import 로 불러와야함 ~
import java.lang은 자동으로 됨
Scanner class
(쟈바 5.0부터 지원)
keyboard input을 받을 수 있는 클래스 !
import java.util.Scanner 해야함
객체를 만들기
Scanner sc = new Scanner(System.in);
-sc.nextInt(); - int value 받기
- sc.nextDouble(); - double 받음
- sc.next() - whitespace 없이 한 string 받음 (공백오면 짤림)
- sc.nextLine() - \n오면 끝남 (해당 스트링에 \ㅜ은 포함 XX !!)
'2-1 > 객체지향 - java' 카테고리의 다른 글
Chap 7. Inheritance (상속) (0) | 2022.04.12 |
---|---|
Chap 6. Arrays .. (0) | 2022.04.06 |
Chap5-2 (0) | 2022.04.04 |
chap 4. class (0) | 2022.04.02 |
chap.5 - static 등등 (0) | 2022.03.26 |