메소드

2023. 12. 6. 22:30Daily 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