在Java編程語言中,棧是一種特殊的數據結構,可以被描述為一組元素,其中訪問和插入都發生在一端。
棧是一個后進先出(LIFO)結構。當新元素被添加到棧時,它會被放置在棧的頂部,并且只有在該元素的下面沒有其他元素時,才能移除該元素。
public class StackExample { public static void main(String[] args) { Stackstack = new Stack<>(); stack.push("Welcome"); stack.push("to"); stack.push("Java"); System.out.println("Stack: " + stack); System.out.println("Pop: " + stack.pop()); System.out.println("Stack: " + stack); System.out.println("Peek: " + stack.peek()); System.out.println("Stack: " + stack); } }
在上面的例子中,我們創建了一個字符串類型的棧,并添加了三個元素。然后我們打印了棧的狀態,彈出了棧的頂部元素,再次打印了棧的狀態,使用peek方法查看棧頂部的元素,并再次打印了棧的狀態。
除了基本類型和原始類型之外,Java編程語言中的所有其他值都是對象。 對象是由類描述的模板,它定義了對象的屬性和方法。在Java中,對象是通過類定義和創建的。對于每個類,您可以創建任意數量的對象,每個對象都具有相同的屬性和方法。
public class Car { String make; String model; int year; public Car(String make, String model, int year) { this.make = make; this.model = model; this.year = year; } }
在上面的例子中,我們定義了一個名為Car的類,它有三個屬性:制造商,型號和生產年份。 我們定義了一個構造函數,該函數將三個屬性作為參數,并將其分配給對象的屬性。
通過我們的構造函數,您可以創建任意數量的Car對象:
public static void main(String[] args) { Car myCar = new Car("Toyota", "Corolla", 2022); Car yourCar = new Car("Honda", "Civic", 2021); System.out.println("My car: " + myCar.make + " " + myCar.model + " " + myCar.year); System.out.println("Your car: " + yourCar.make + " " + yourCar.model + " " + yourCar.year); }
上面的程序創建了兩個Car對象,一個是Toyota Corolla 2022年制造的,另一個是Honda Civic 2021年制造的。 通過使用點號,我們可以分別訪問每個對象的屬性。