[Java/자바] array of objects, object passing, static keyword

sbj·2023년 11월 25일
0

Java

목록 보기
5/15
post-thumbnail

Array of objects

Main class

public class Main {

	public static void main(String[] args) {

//		int[] numbers = new int[3];
//		char[] characters = new char[4];
//		String[] strings = new String[5];
	
//		Food[] refrigerator = new Food[3];
		
		Food food1 = new Food("pizza");
		Food food2 = new Food("hamburger");
		Food food3 = new Food("hotdog");
		
		Food[] refrigerator = {food1, food2, food3};
		
//		refrigerator[0] = food1;
//		refrigerator[1] = food2;
//		refrigerator[2] = food3;
		
		System.out.println(refrigerator[0].name);
		System.out.println(refrigerator[1].name);
		System.out.println(refrigerator[2].name);
	}
}

Food class

public class Food {
	
	String name;
	
	Food(String name){
		this.name =name;
	}
}

Object Passing

Main Class

public class Main {

	public static void main(String[] args) {
		
		Car car1 = new Car("BMW");  
		Car car2 = new Car("Tesla");

		Garage garage = new Garage();
		
		garage.park(car1);
		garage.park(car2);
	}
}

Understanding the flow of Java code, which I still feel I am lacking.
아직 내가 부족한 부분이라고 느끼는 자바 코드의 흐름을 이해하기.

    1. car1, car2 Instances → “BMW”, “Tesla” ⇒ Car(String name)car1, car2 are instances of the Car class.
      ca1, ca2 인스턴스 → BMW, Tesla의 name을 갖는 Car 클래스의 인스턴스를 생성한다.
    1. garage is an instance in the Garage class.
    1. We send the car1, car2 instances that contain “BMW”, “Tesla” to the park() method.
    1. Then, when the Main Class is executed, the park() method is called.

Car Class

public class Car {
	//Global Variables
	String name;

	//Constructor	
	Car(String name){
		this.name = name;
	}
}
    1. The Constructor takes a parameter name and assigns its value to the instance variable (String name) ⇒ name using the this keyword.
      Car 클래스는 name 이라는 Global 변수를 가진다. → Car(String name) ⇒ name 변수가 파라미터를 통해 저장된다.

Garage Class

public class Garage {
	void park(Car car) {
		System.out.println("The " + car.name + " is parked in the garage.");
	}
}
    1. The park() method takes a parameter car in the Car class.
      They're ready to display on the console.
      park() 메소드는 Car 클래스의 car 이라는 오브젝트를 파라미터를 통해 전달받는다.
    1. Then, they are displayed on the console.
      메소드 내의 기능을 수행한다.

Verify if I have understood correctly.

내가 제대로 이해했는지 검증하기.

I want to display on console “The next song is Vampire by Olivia Rodrigo.”
“The next song is Vampire by Olivia Rodrigo.” 라는 문장을 콘솔에 출력하고 싶다.

public class Main2 {	
	public static void main(String[] args) {

		Musics myFavoriteArtist = new Musics("Vampire", "Olivia Rodrigo");

		Playlist playlist = new Playlist();
		playlist.play(myFavoriteArtist, myFavoriteArtist);
	}
}
public class Musics {
	String music ;
	String artists;
	
	//Constructor
	Musics(String music, String artists){
		this.music = music;
		this.artists = artists;
	}
}
public class Playlist {
	void play(Musics music, Musics artists) {
		System.out.println("The next song is " + music.music
				+ " by  " + artists.artists);			
	}
}

Getter & Setter

public class Main2 {	
	public static void main(String[] args) {
Musics music2 = new Musics();
		System.out.println(music2.getSong());
	
	}
}
public class Musics {

	private String song = "Vampire";
	
	public String getSong() {
		return song;
	}
	public void setSong() {
		this.song = song;
	}
}

Static keyword

public class Main {
	public static void main(String[] args) {
		
		//Static = modifier. A single copy of a variable/method is created and shared. 
		
		Friend friend1 = new Friend("SpiderMan");
		Friend friend2 = new Friend("BatMan");
		Friend friend3 = new Friend("IronMan");

		System.out.println(Friend.numberOfFriends);
		Friend.displayFriends();
	}
}
public class Friend {

	String name;
	static int numberOfFriends;

	Friend(String name){
		this.name = name;
		numberOfFriends++;
	}
	static void displayFriends() {
		System.out.println("You have "+numberOfFriends +" friends");
	}
}
## Output
3
You have 3 friends
profile
Strong men believe in cause and effect.

0개의 댓글