자바(Java) 첫 수업!
프로그래밍에서 쓰이는 언어들은 여러개가 있다.
C, C++, 파이썬, 자바 등등 많은 언어들이 있고, 개발에 필요한 언어들이다.
그 중 자바 라는 언어를 배우고 있는 내용을 작성해 보려고 한다!
Java 주말반 첫 수업을 시작하면서 프로그램을 까는 것 부터 시작하였다.
강의실안에 컴퓨터가 전부 마련되어 있었지만 나는 노트북으로 옮기고 하는 과정이 귀찮아서 내 노트북을 가지고 가서
수업을 들었다.
앞으로도 계속 그럴예정😊
수업을 시작하기 전 tiobe 라는 사이트에 들어가서 프로그래밍 언어들이 어떤 것들이 있는지,
언어들마다 얼마나 사용하는지에 대한걸 그래프로 확인할 수 있는 자료를 보여주셨다.
이처럼 프로그래밍 언어들이 나와있는데 색깔별로 그래프가 나와있고, 시간이 지날 수록 어떤 프로그래밍 언어들이
더 많이 사용이 되는지 눈으로 확인할 수 있었다.
다음으로 사용할 프로그램을 설치 및 셋팅을 진행한 후 수업을 진행하였다.
설치하는 것에 있어 많은 시간이 소요되어 많은 내용이 진행되진 않았다.
우선, 자바(JAVA)란?
자바는 대표적인 프로그래밍 언어로,
객체 지향 프로그래밍 언어로서 보안성이 뛰어나며 컴파일한 코드는 다른 운영 체제에서 사용할 수 있도록 클래스(class)로 제공된다. 객체 지향 언어인 C++ 언어의 객체 지향적인 장점을 살리면서 분산 환경을 지원하며 더욱 효율적이다.
시작하기 전에 프로그램을 사용하면서 만들 파일들을 저장할 폴더를 만들어 주었다.
나는 다른 언어들도 폴더로 나누어져있기 때문에 java 라는 표시를 하여 생성했다.
폴더를 생성한 후 프로그램을 실행하여 workspace 폴더 안에 프로젝트를 생성해 주었다.
프로젝트 이름을 작성해 주고 JRE -> JavaSE - 11, Module 체크해제로 설정을 맞춰준다.
JRE 부분에 설정하는 걸 확인해보면,
11 말고도 그 뒷 버전들이 많은데 이유는 11까지 나오기는 많은 시간이 걸려서 업데이트가 되면서 버전이 나온 것인데,
11부터 안정성을 찾기 시작하면서 업데이트를 할 때마다 버전을 계속 업데이트를 할 수 있게끔 해놓은 것이다!
11 버전 이후를 사용해도 되지만 그나마 제일 보장되어 있는 11 버전을 사용하기로 한다!
11 버전을 다른 회사에서도 가장 많이 사용하는 버전이라고 하며, 이 전 버전을 사용하는 곳도 있어서 무관하다고 한다.
이렇게 프로젝트 생성을 완료한 후 Package 생성 -> Class 생성하여 수업을 시작하였다!
제일 처음으로 만든 Class 인 PrintTest 이다!
클래스 이름을 작성할 땐 맨 앞은 대문자로 작성을 시작한다.
public static void main(Stringp[] args) 부분을 체크 -> Finish 를 눌러 생성을 하였다!
클래스를 만들어서 작성을 해 보았다.
1번 줄 -> j01_출력; 이라고 나와있고, 3, 5번 줄을 보면 클래스를 생성할 때 작성한 내용, 체크박스 내용이 적혀있다.
그 아래 6,7 번 줄부터 작성을 시작하였는데,
작성한 내용을 출력을 하기 위해 System.out.println 이라는 명령어를 작성하여 내용을 붙여 넣는다.
컴파일 한 출력 결과이다.
여기서 컴파일(compile)이란?
-> 컴퓨터가 이해할 수 있도록 0 과 1로 이루어진 기계어로 변환하는 과정을 말한다.
다음 작성한 내용이다.
여기서 차이점은?
print 뒤에 ln이 붙었나 안 붙었나의 차이인데, 여기서 ln은 줄 바꿈의 의미를 가지고 있다.
ln을 붙이지 않고 출력한 결과는?
'김연경' 다음으로 '자바 첫 수업' 내용이 붙어서 출력이 된다.
이 방법 말고 다른 방법으로 줄 바꿈 하여 출력하는 방법도 있다.
이렇게 출력하면 어떻게 나올까요?
이렇게 나온다! 역슬래시(\) 엔터 위에 원 표시를 눌러주면 역슬래시가 나오고, n을 붙여서 \n 으로 줄바꿈 하는 곳에 넣어주면 원하는 위치에서 줄 바꿈을 할 수 있다!
여기서 추가로, 내가 메모를 쓰고싶은데 메모장을 키기엔 귀찮고 작성하는 곳에 바로 표시를 하고 싶을 때!!
// 를 사용하면 한 줄 주석!
/**/를 사용하면 원하는 곳까지 주석 처리 가능!
이제 다른 클래스를 만들어서 작성을 한다.
클래스 이름 : PrintTest2
여기서 int 라는 말이 나온다.
int 란 자료형을 나타내는 말인데, 자바에 자료형을 먼저 알아보면 아래와 같다.
자료형 | 설명 | 크기(바이트수) | 범위 | |
논리형(부울형) | boolean | 참과 거짓 | 1bit | true or false |
문자형 | char | 문자 | 2byte | 0 ~ 65,535 |
정수형 | byte | 정수 | 1byte | -128 ~ 127 |
short | 정수 | 2byte | - 32,768 ~ 32,767 | |
int | 정수 | 4byte | - 2,147,483,648 ~ 2,147,483,647 | |
long | 정수 | 8byte | - 9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,808 | |
실수형 | float | 실수 | 4byte | - 3.4E38 ~ + 3.4E38 |
double | 실수 | 8byte | - 1.7E308 ~ + 1.7E308 |
이렇게 자료형들이 있고, int 를 사용하여 정수를 나타내는 자료형을 사용한 것이다.
작성하는 형식 ) 자료형 변수명
형식대로 작성하여 변수에 10을 대입한 후 출력을 했다.
출력한 결과 10이 나왔다..
이때 a = 10 으로 표현을 했는데 '같다' 는 말이 아닌 대입을 한다는 말이다!
밑으로 계속 작성하여 출력되는 값을 확인하였다.
정수는 정수형으로, 실수는 실수, 문자열은 문자, 논리형은 논리형으로 알맞게 출력되는 것을 확인할 수 있었다.
● 단축키 : ctrl + / 를 같이 누르면 선택되어 있는 그 줄에 주석 처리를 할 수 있다. (20번 열 참조)
● 문자열을 쓸 때, 큰따옴표("") 를 사용해야 된다!
여기서 특이사항을 보면, 출력된 결과만 보면 21 ~ 27, 29 ~ 34 줄의 내용이 동일하게 출력이 된다.
하지만 22번과 30번 줄을 보면?
22번은 "홍길동" 이라는 이름을 입력해서 넣었다.
30번은 위에 char 자료형과 name1,2,3 변수를 가져와서 출력을 하였는데 맨 앞에 큰 따옴표를 붙여서 출력을 하였다.
만약 큰따옴표를 맨 앞이 아닌 맨 뒤로 넣게 되면 원하는 방식으로 출력이 되지 않고, 아스키 코드로 출력이 된다.
Cast 클래스를 만들어 업캐스팅과 다운캐스팅을 알아보았다.
캐스팅 : 타입을 변환하는 것으로 형변환이라고 한다.
업캐스팅 : 묵시적 형변환, 문자 -> 정수 -> 실수 순서로 변환이 된다.
-> 자식 클래스의 객체가 부모 클래스로 형변환을 하는 것이다.
다운캐스팅 : 명시적 형변환
-> 업캐스팅과 반대로 형변환을 하는 것이다.
출력을 하게 되면 위와 같이 출력이 된다.
상수란?
상수는 수정이 불가능한 수이다.
자바에서 상수를 표시하기 위해서는 자료형 앞에 final 을 표시하여야 한다.
위 이미지에 나와있는 것처럼 상수를 나타내는 final을 붙이고 자료형 다음 변수명이 전부 대문자로 표시가 되어있고,
중간에 언더 바(_) 가 들어가져있다.
클래스를 작성할 때 많은 변수들이 작성되어 있을 것이다.
그중 상수가 어떤 것인지 한눈에 알아볼 수 있게 나타낸 방법이다.
그럼 중간에 들어가 있는 언더바(_) 를 표시하는 건 뭘까?
바닥을 기어 다니는 뱀의 모습을 따온 것으로 단어를 언더바(_ ) 로 구분하는 표기법이다.
증감연산자 : 변수인 자신의 값을 1 증가시키거나 1 감소시킨다.
++,-- 가 앞 또는 뒤에 오는 방식에 따라 증가, 감소가 다르게 나타난다.
앞에 표기를 하게 되면 증가 또는 감소를 바로 출력시킨 후 다음 값으로 넘어가고, 뒤에 표기를 하게 되면 증가 또는 감소가 현재 출력한 값의 다음 값에 표시되어 출력이 된다!
관계연산자 : 비교연산자라고도 하며, 부등호로 true 또는 false 값인 boolean 자료형으로 결과가 반환되는 것이다.
기준은 왼쪽으로 잡아서 작성을 하며, 크다 작다 이 외 다르게 표현하는 것이 있다.
> : 왼쪽의 항이 크면 참, 아니면 거짓을 반환한다.
< : 왼쪽의 항이 작으면 참, 아니면 거짓을 반환한다.
>= : 왼쪽의 항이 크거나 같으면 참, 아니면 거짓을 반환한다.
<= : 왼쪽의 항이 작거나 같으면 참, 아니면 거짓을 반환한다.
== : 두 개의 항이 같으면 참, 아니면 거짓을 반환한다.
!= : 두 개의 항이 다르면 참, 아니면 거짓을 반환한다.
복합 대입 연산자 : 대입 연산자와 다른 연산자를 결합하여 만든 것.
위에 나와있는 것처럼 7번 줄부터 밑으로 내려갈 때 결과값에 대해 또 다른 연산자를 추가로 넣어서 수를 연산해 준다.
이건 실습으로 풀어본 문제이다.
변수에 숫자를 대입해서 다른 변수에 넣은 후 대입한 숫자에 맞는 결과값이 어떻게 나오는지 확인할 수 있었는데,
이걸 풀어보고 스스로 거의 비슷하지만 다른 문제를 한번 풀어보았다!
내가함 은 내가 했다는 걸 표시한 것임 ㅎㅋㅎㅋ
암튼 거의 변수랑 말만 바꿔서 한 거지만 내가 문제를 내서 풀어보았다.
그래서 두 문제를 실습한 결과는?
뭔가 결과를 가져와보니 슬프네 암튼 내가 한 거임 ㅎㅋ (똑같이 따라 해놓고 생색내기)
여기서는 indexOf, LastIndexOf, substring, repalce, repalceall 에 대한 걸 알아보았다.
- indexOf : 찾는 문자가 몇 번째 위치에 있는지 확인하여 숫자로 출력
- LastIndexOf : 찾는 문자가 두 개 이상인 경우 맨 뒤에 있는 문자를 출력함
- substring : 문자열을 원하는 위치에서 잘라야 하는 경우 사용
- replace : 바꾸고 싶은 문자를 바꿔줌- replaceAll : 바꾸고 싶은 문자열을 바꿔줌
이 함수들을 사용해서 실습을 해보았다! (쌤이 내줌)
실습 내용을 보면 rephone 변수에 입력되어있는 전화번호를 바꾸는 것이다.
먼저 ' / ' 로 표현되어 있는걸 ' - ' 로 변경하고, 010 을 011 로 변경하였다!
그리고 나서 구분되어 있는 ' , ' 을 ' / ' 으로 변경하여서 출력한 결과!!
24 ~ 27번 줄은 한 번 더 나타낸 것인데, 위에 줄처럼 하나하나 바꾸는 방법도 있지만 한 번에 바꿔서 출력할 수 있는 걸 보여준 것이다.
다음 클래스로 넘어와서!
여기선 stringBuilder 객체를 생성하여 append, delete 함수를 사용해 문자열을 연결하고 삭제하는 걸 해보았다.
append 를 사용해 "이름 : " 과 "홍길동" 을 연결하여 출력했다.
그리고 delete 를 사용해서 1번 문자를 시작으로 2번 문자 앞에 까지 삭제하는 것이다!
여기까지 이번주 수업이 마무리가 되었다.
첫 주 수업을 들으면서 깨달은 것은 진짜 열심히 해야겠다.
나 말고 다른 학생들을 보았는데 컴퓨터공학과 나온 사람들이 있었다.
난 비전공자여서 당연히 전공자보다 서툴고 잘 못하는게 맞다고도 생각하지만 그 사람들을 따라가려면 좀 더 열심히 해야겠다고 생각했다.
열심히 해보자!!!!! 화이팅!!!
'JAVA' 카테고리의 다른 글
2023년 03월 19일 - 넷째 주 수업! (0) | 2023.04.11 |
---|---|
2023년 03월 12일 - 셋째 주 수업! (0) | 2023.03.21 |
2023년 03월 11일 - 셋째 주 수업! (0) | 2023.03.14 |
2023년 03월 05일 - 둘째 주 수업! (0) | 2023.03.09 |
2023년 03월 04일 - 둘째 주 수업! (0) | 2023.03.07 |