2023. 12. 6. 22:30ㆍDaily Codig Reminder
메소드
String name;
int age;
String addr;
public Student (Strung name, int age, String addr){
super();
sysout("매개변수 3개짜리 생성자");
this.name = name;
this.age = age;
this.addr=addr;
}
public String getName() {
return name;
} public void setName(String name) {
this.name = name; }
public int getAge() { return age;
} public void setAge(int age) {
this.age = age;
} public String getAddr() {
return addr;
} public void setAddr(String addr) {
this.addr = addr;
} public Student() { super();
// TODO Auto-generated constructor stub }
@Override
public String toString() {
return "Student [name=" + name + ", age=" + age + ", addr="addr + "]";
} public Student (String name) { this(name, 20, "미상");
System.out.println("1개짜리 생성자 호출"); }
public static void main(String[] args) {
System.out.println();
Student stu1 = new Student ("홍길동");
System.out.println(stu1);
Package 와 import 문
import java.lang.*;
import java.util.Random;
import com.xxx.Student;
public class test{
public static void main (String[]args){
Student s = new Student();//import 안해서 에러남 -> import
sysout (s.name);
Random r = new Random (); // -> import 하기
}
-> import 하기
com.xxx.Student s = new com.xxx.Student();
com.yyy.Student s2= new com.yyy.Student();
} -> 직접 주소 쓰기
배열로 객체관리
Student stu = new Student ("홍길동1",1,"서울1");
Student stu2 = new Student ("홍길동2",2,"서울2");
Student stu3 = new Student ("홍길동3",3,"서울3");
//데이터 타입 [] 배열명 = {값1, 값2};
Student [] yy = {stu, stu2, stu3};
System.out.println(yy); //@5aaa6d82
System.out.println(yy.length); //3
System.out.println(yy[0]); //Student [name=홍길동1, age=1, address=서울1]
System.out.println(yy[2].getName()); //yy[2].toString() 홍기동3
for (int i =0; i< yy.length; i++){
Student s = yy[i];
sysout(s.getname()+"\t"+yy[i].getAge());
//홍길동1 1
// 홍길동2 2
// 홍길동3 3
} System.out.println("============");
for (Student s : yy) {
System.out.println(s.getName()+"\t"+s.getAge()); }
public class TestStudent{
public void changeNUm(int num){
num=20;
}
public void changeNum(int num){
num=20;
}
public static void main (String [] args ) {
Student stu = new Student("홍길동",20,"서울);
sysout("변경전 나이 :" +stu.getAge());
TestStudent t = new TestStudent();
t.changeAge(stu); //call by ref
sysout("변경 후 나이: "+ stu.getAge());
int num =10;
t.changeNum(10); //call by value
sysout ("변경 후 num"+num);
}}
변경 전 나이 :20
변경 후 나이 : 40
Static
객체 상관없이 객체들의 공유변수가 되는게 static 클래스와 관계가 있다.
public class Person(
//인스턴스 변수 ,new 할 때 생성 ~ 객체 소멸 사용: 생성 후 변수명 .name
String name;
//static 변수(클래스 변수), 프로그램 실행시 생성~ 프로그램 종료, 사용: 클래스 명.age
static int age;
public void a(){
sysout(this.name);
sysout(age);
}
public satic void b (){ // static 함수 객체 생성과 상관없음
//static 함수 안에서는 객체 생성 후 사용해야 하는 일반 멤버변수 사용안됨
// 로컬변수 static 변수만 가능
//sysout(name);//error
sysout("static 함수 : "+age);
}
public satic void main(String [] args){
//TestMain aa = new TestMain();
test();
sysout (Person.age); //객체생성없이 class.변수명 사용
Person.b();
Person p = new Person();
sysout(p.name);//null
sysout(p.age);//0
p.a();
sysout(Person.age);
Person.b();
p.age=20; //static 공유변수의 값 변경
Person p2 = new Person();
System.out.println(p2.age); //객체 생성 후 공유변수와
System.out.println(Counter.getcount2());//API 메서드
Counter c = new Counter();
System.out.println("counter"+c.getCount());//1
System.out.println(c.getNum());//1
Counter c2 = new Counter();
System.out.println("count"+c2.getCount());//2
System.out.println(c2.getNum());//1
Counter c3 = new Counter();
System.out.println("count"+c3.getCount());//3
System.out.println(c3.getNum());//1
static→ 변수, 함수 객체 x 클래스이름.변수
static 변수 : 공우변수
ststic 함수 주의전 : 멤버변수 불가
'Daily Codig Reminder' 카테고리의 다른 글
다형성 (1) | 2023.12.07 |
---|---|
static, 클래스들의 관계 (1) | 2023.12.06 |
클래스(객체), 메소드 (1) | 2023.12.05 |
배열 (0) | 2023.12.04 |
문장 (1) | 2023.11.30 |