일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Java
- ospf
- 버추얼머신
- javaee
- autoset
- 오라클
- 이것이 자바다
- sql
- 리눅스
- 네트워크
- NCS
- php
- VLAN
- 정처기필기
- 자바
- html
- jsp
- 라우터
- rinux
- 참조타입
- jsp연결
- ciscopacket
- 데이터베이스
- w3school
- Oracle
- Cisco
- 네트워크관리사
- 원형그래프
- 정보처리기사
- cisco packet
- Today
- Total
기록해! 정리해!
자바 - 형변환 , 연산 우선수위, 구구단 본문
07/04
고급언어 : 사람이 이해할 수 있는 언어 (C, JAVA, C++, PHP ..)
저급언어 : 기계어 (0과 1로 이루어진 언어), 어셈블리어
컴파일언어 : C, JAVA, C++, C#
1) 전체파일을 기계어로 한번에 번역하여 실행
2) 속도가 빠르다
인터프리터 언어 : HTML, JavaScript, SQL, Python
1) 각각의 명령어 라인을 한개씩 번역하여 실행
2) 속도가 느리다
자바
1) 1995년 자바 <---> 파이썬 1991년 <---> C언어 1972년
2) 이식성이 높다. 객체지향언어다. (=클래스 지향 언어다.)
3) 함수적 스타일 코딩을 지원한다. (람다식 표현 : -> )
4) 메모리를 자동으로 관리해준다.
5) 다양한 애플리케이션을 개발
6) 멀티스레드
7) 막강한 오픈 소스 라이브러리가 풍부하다
JDK 설치
a.java ------> a.class --> a.exe
소스 ( 컴파일 ) 기계로 번역
public static void main (String[] args) {
접근제어자 정적메모리할당 리턴형 메소드 (매개변수의 형 매개변수)
정적메소드 main메소드는 형태를 바꿀 수 없음
º 사용할 수 있는 변수이름 규칙 : $, _ ,영문자
º 예약어는 사용할 수 없다. (for, if ...)
package test;
public class Hello {
public static void main(String[] args) {
int $age = 0; //정수형 변수 선언하기
double _value = 0.0; //실수형 변수 선언하기
System.out.println($age+":"+_value);
System.out.println("환영합니다");
}
}
package test;
public class Hello {
public static void main(String[] args) {
int value = 30;
int result = value + 10; --초기값 필요
System.out.println("result:" + result);
}
}
1. main 메소드없는 클래스 TestEx 작성
2. main 메소드있는 클래스에 new TestEx(); 로 작성되면 클래스였던 것이 객체가 됨
TestEx t1 = new TestEx();
t1.toString();
System.out.println(t1.toString());
TestEx t2 = new TestEx();
t2.toString();
System.out.println(t2.toString());
변수 ) 객체가 다른 메모리를 사용한다
객체 ) 값이 같으면 같은 메모리를 사용한다
int a = 100;
int b = 100;
클래스 안에 쓸 수 있는 3가지
: 필드 / 생성자 / 메소드
º 필드(=변수)
int kor;
º 생성자 (클래스 이름과 같은 메소드)
TestEx(){
}
기본 생성자를 호출한것.
기본 생성자는 public이 생략이 되어있는 상태
생성자의 역할 : 값을 초기화하는 것
TestEx(){
kor = 100;
}
º 메소드 (명령어들을 묶어준다)
괄호 안에 있는 것 : 지역변수 ex.eng --자기 영역안에서만 영향을 미침
괄호 밖에 있는 것 : 전역변수 ex.kor --전체에 영향을 미침
º try, catch, finally
finally : 무조건 실행
package test;
public class TestEx {
void testEx(){
try {
System.out.println("try영역");
}catch(Exception ex) {
System.out.println("catch영역");
}finally {
System.out.println("finally영역");
}
}
}
try가 실행되다가 예외가 발생하면 catch가 실행됨
package test;
public class TestEx {
void testEx(){
try {
System.out.println("try영역");
int k = 100 / 0 ;
System.out.println(k + "출력");
}catch(Exception ex) {
System.out.println("catch영역");
}finally {
System.out.println("finally영역");
}
}
}
지역변수 위에서 String str 선언하고
그 값이 return 되게끔
package test;
public class TestEx {
String testEx(){
String str = "";
try {
System.out.println("try영역");
str = "1";
int k = 100 / 0 ;
System.out.println(k + "출력");
}catch(Exception ex) {
System.out.println("catch영역");
str = "2";
}finally {
System.out.println("finally영역");
str = "3";
}
return str;
}
}
무조건 finally가 실행되니까 3
º 데이터 타입 (정수형/ 실수형/ 논리형)
package test;
public class TestEx {
//1.필드(=변수) 2.생성자 3.메소드
void testEx(){
//1. 정수형
byte b = -128;// -128 ~ 127
char c1 = '가'; // 문자를 직접 저장
char c2 = 65; // 10진수로 저장
short s; // -32,768 ~ -32,767 사이의 숫자
int i; // 자바의 정수 기본타입
long l1 = 10L; //선택사항(L을 붙히면 long형이라는걸 정의해 줄 수 있다)
long l2 = 3147483647L; // 필수사항 (int보다 큰 값을 정의해 줄 때)
//2. 실수형
float f;
float f1 = 10;
float f2 = 10.5f; //필수사항
double d; //실수 기본타입
double d1 = 10;
double d2 = 10.5;
double d3 = 10.5d;//선택사항
//3. 논리형
boolean bool;
System.out.println(b);
System.out.println(c1 + ":" + c2);
System.out.println(l1 + ":" + l2);
º 묵시적형변환 (=자동형변환)
: 작은형을 큰형으로 변환하는 것
int k = 2147483646;
long i = k; //묵시적형변환(=자동형변환)
System.out.println(i);
float f1 = 5.5f;
double f2 = f1; //묵시적형변환
System.out.println(f2);
º 명시적형변환 (=강제형변환)
: 큰형을 작은형으로 변환하는 것 ()사용
long k가 int에 들어갈 수 있는 값만 가능하다
long k = 2147483646;
int i = (int)k; //강제형변환
System.out.println(k);
숫자 -> 문자로 바꾸기 가능 / 문자 -> 숫자 불가능
int f1 = 100;
String f11 = Integer.toString(f1); //숫자를 문자로 변환
String f12 = String.valueOf(f1); //숫자를 문자로 변환
System.out.println(f11);
System.out.println(f12);
System.out.println(f11+f12);
문자니까 200이 아니라 100100임
문자값을 숫자로 변환하기 (됨)
String ii = "100";
int ii1=Integer.parseInt(ii);
int ii2=Integer.parseInt(ii);
System.out.println(ii1+ii2);
문자를 숫자로 변환하기 (안됨)
인터넷으로 넘어오는 모든 값은 문자다
숫자로 받아 쓰려면 Integer.parseInt형변환을 해야한다
String jj = "ABC";
int jj1=Integer.parseInt(jj);
int jj2=Integer.parseInt(jj);
System.out.println(jj1+jj2);
숫자니까 100+100 =200
º 숫자 앞에 0을 쓴다는 건 문자열로 정의한다는 뜻이다
숫자면 앞에 0을 안쓰겠지.
산술연산을 하냐 안하냐에 따라 숫자로 나타내고 문자로 나타내기도 한다
:ex. 010
º 정수 + 실수 = 실수
String ii = "100";
int ii1=Integer.parseInt(ii);
double ii2 = Double.parseDouble(ii);
System.out.println(ii1+ii2);
º 연산식 변환
--자동형변환
int intvalue = 10;
double doublevalue = 5.5;
double result = intvalue + doublevalue;
System.out.println(result);
--강제형변환
int intvalue = 10;
double doublevalue = 5.5;
int result = intvalue + (int)doublevalue;
System.out.println(result);
º 캐릭터는 꼭 ' ' 띄어써야함 !
º 연산자 비교 우선순위
int a = 0; int b = 0;
int d = 0;
if (a >= b) {
// 비교연산 : >=, <=, ==, !=
// 대입연산 : +=, -=, *=, /=
a += b; // a=a+b
d += 1; // d=d+1
º
int var1 = 1;
int var2 = 2;
int var3 = 3;
int result = (var1+var2)/var3;
System.out.println(result);
º 전위연산 / 후위연산
int k = 10;
System.out.println(++k); //전위연산자 11
System.out.println(k); // 11
int m = 10;
System.out.println(m++); //후위연산자 10
System.out.println(m); // 11
º 구구단
package test;
public class TestEx {
void testEx(int dan) {
for(int i = 1; i <=9 ; i++) {
int result = dan * i;
System.out.println(dan + " X "+i+" = "+result);
}
}
}
package test;
public class Hello {
public static void main(String[] args) {
TestEx t = new TestEx();
t.testEx(3);
}
}
º 리턴값이 여러개일 때 리스트형으로 잡아서 값을 넘기는 법
ResultVo 만들고
getter ~ / toString 두개 추가하기
package test;
public class ResultVo {
String result;
public String getResult() {
return result;
}
public void setResult(String result) {
this.result = result;
}
@Override
public String toString() {
return "ResultVo [result=" + result + "]";
}
}
package test;
import java.util.ArrayList;
import java.util.List;
public class TestEx {
List<ResultVo> li = null;
List<ResultVo> testEx(int dan) {
li = new ArrayList<ResultVo>();
for(int i=1; i<=9; i++) {
ResultVo m= new ResultVo();
int result= dan*i;
String str = dan + "X" + i + "=" + result;
m.setResult(str);
li.add(m);
}
return li;
}
}
package test;
import java.util.List;
public class Hello {
public static void main(String[] args) {
TestEx t = new TestEx();
List<ResultVo> li = t.testEx(5);
for(int i= 0 ; i < li.size(); i++){
ResultVo m = li.get(i);
System.out.println(m.result);
}
System.out.println();
}
}
º 매개변수 2개 받기
(3단에서 5단까지 출력하기)
List<ResultVo> li = t.testEx(3,5);
package test;
import java.util.ArrayList;
import java.util.List;
public class TestEx {
List <ResultVo>li= null;
List<ResultVo> testEx(int dan1, int dan2) { //여기부터 지역변수
li = new ArrayList<ResultVo>();
for(int dan =dan1; dan<=dan2; dan++) {
for(int i=1; i<=9; i++) {
ResultVo m= new ResultVo();
int result= dan*i;
String str = dan+" x "+i+" = "+ result;
m.setResult(str); //setResult : 값을 대입하는 것
li.add(m); // 1부터9까지의 결과값을 li 에 다 쌓아두는 것
}
}
return li;
}
}
-- 가로로 나타내기
package test;
import java.util.ArrayList;
import java.util.List;
public class TestEx {
List<ResultVo> li = null;
List<ResultVo> testEx(int dan1, int dan2) {
li = new ArrayList<ResultVo>();
for ( int dan = dan1 ; dan <= dan2 ; dan++) {
ResultVo m= null;
String str="";
for (int i = 1; i <= 9; i++) {
m = new ResultVo();
int result = dan * i;
String str1 = dan + "X" + i + "=" + result + "\t";
str = str + str1; //결과값을 누적 --옆으로 찍힘
}
m.setResult(str);
li.add(m);
}
return li;
}
}
º
List<ResultVo> testEx(int dan1, int dan2) { //콜렉션
List<ResultVo> li = new ArrayList<ResultVo>(); //for문 밖에서 변수찍기
for ( int dan = dan1 ; dan <= dan2 ; dan++) {
ResultVo m= null;
String str=""; //for문 밖에서 선언하기
for (int i = 1; i <= 9; i++) {
m = new ResultVo();
int result = dan * i;
String str1 = dan + "X" + i + "=" + result + "\t";
str = str + str1; //결과값을 누적 --옆으로 찍힘
}
m.setResult(str); //for문 밖에 있음
li.add(m);
}
return li; //for문 밖에 있음
}
return값은 1개밖에 받을 수 없다
'JAVA' 카테고리의 다른 글
자바 - 난수 , switch, break, for문, while문, 확인문제 (3장,4장) (0) | 2022.07.06 |
---|---|
자바 - 오버플로우, 연산자 , 확인문제 (0) | 2022.07.05 |
자바 - 메소드연습 , 구구단 (0) | 2022.07.05 |
자바 - 이론 , 출력 , 연산 (0) | 2022.07.01 |
자바 - 설치 (JDK, 아파치톰캣, 이클립스) (0) | 2022.07.01 |