Java面向对象基础--实现单向链表

1、设计节点类

以string为数据保存内容,还必须有一个属性保存下一个节点的引用地址。

class Node{		// 定义节点类
	private String data ;	// 保存节点内容
	private Node next ;		// 表示保存下一个节点
	public Node(String data){		// 通过构造设置节点内容
		this.data = data ;	// 设置内容
	}
	public void setNext(Node next){
		this.next = next ;		// 设置下一个节点
	}
	public Node getNext(){	// 取得下一个节点
		return this.next ;
	}
	public String getData(){
		return this.data ;	// 取得节点的内容
	}
};

2、测试节点类

class Node{		// 定义节点类
	private String data ;	// 保存节点内容
	private Node next ;		// 表示保存下一个节点
	public Node(String data){		// 通过构造设置节点内容
		this.data = data ;	// 设置内容
	}
	public void setNext(Node next){
		this.next = next ;		// 设置下一个节点
	}
	public Node getNext(){	// 取得下一个节点
		return this.next ;
	}
	public String getData(){
		return this.data ;	// 取得节点的内容
	}
};
public class LinkDemo01{
	public static void main(String args[]){
		Node root = new Node("火车头") ;  // 定义根节点
		Node n1 = new Node("车厢-A") ;	// 定义第一个车厢(第一个节点)
		Node n2 = new Node("车厢-B") ;	// 定义第二个车厢(第二个节点)
		Node n3 = new Node("车厢-C") ;	// 定义第三个车厢(第三个节点)
		root.setNext(n1) ;			// 设置火车头的下一个节点是第一个车厢A
		n1.setNext(n2) ;			// 设置第一个车厢的下一个节点是第二个车厢
		n2.setNext(n3) ;			// 设置第二个车厢的下一个节点是第三个车厢
		n3.setNext(null);
		printNode(root) ;			// 从头开始输出
	}
	//递归操作,进行输出
	public static void printNode(Node node){	// 输出节点
		System.out.print(node.getData() + "\t") ;	// 输出节点的内容
		if(node.getNext()!=null){		// 判断此节点是否存在下一个节点
			printNode(node.getNext()) ;	// 向下继续输出
		}
	}
};
时间: 2024-11-13 06:38:11

Java面向对象基础--实现单向链表的相关文章

Java面向对象基础--链表的改进

采用内部类完成链表的操作 1.增加节点,在链表的最后进行增加 class Link{ // 链表的完成类 class Node{ // 保存每一个节点,此处为了方便直接定义成内部类 private String data ; // 保存节点的内容 private Node next ; // 保存下一个节点 public Node(String data){ this.data = data ; // 通过构造方法设置节点内容 } public void add(Node newNode){ /

Java面向对象基础--类的设计及分析问题的方法---用户登录例子

1.用户登录的示例 首先要做的就是先把功能实现: public class LoginDemo01{ public static void main(String args[]){ if(args.length!=2){ // 应该判断输入的参数个数是否是2 System.out.println("输入的参数不正确,系统退出!") ; // 给出一个正确的格式 System.out.println("格式:java LoginDemo01 用户名 密码") ; Sy

Java面向对象基础---名词概念的理解:方法的重载、构造函数、封装性

方法的重载:方法名称相同,但参数的类型和个数不同,通过传递参数的个数及类型不同以完成不同功能的方法调用. 例如:System.out.println();属于方法的重载. 方法的重载一定是根据参数类型和个数来判断的. 构造函数:构建创造对象时调用的函数.作用:可以给对象进行初始化.Tip:函数名与类名相同,不用定义返回值类型,没有具体的返回值.   面向对象特征:1.封装(encapsulation)对外部不可见,保护程序的某些内同.2.继承性(inheritance)扩展功能.3.多态(pol

Java面向对象基础--构造方法

只要一有对象实例化,就会调用此方法.   在整个JAVA的操作中,如果一个类中,没有明确的声明一个构造方法,则会自动产生一个没有参数的,什么都不做的构造方法,供用户使用.       构造方法的主要目的:就是为类中的属性进行初始化: 匿名对象:没有名字,在java中,如果一个对象只使用一次,就可以将其定义成匿名对象. 总结: 对象在实例化的时候,必须调用构造方法: 每个类中至少有一个构造方法: 匿名对象,只开辟了堆内存的实例对象:    

Java面向对象基础--引用传递分析

class Demo{ int temp = 30 ; // 此处为了方便,属性暂时不封装 }; public class RefDemo01{ public static void main(String args[]){ Demo d1 = new Demo() ; // 实例化Demo对象,实例化之后里面的temp=30 d1.temp = 50 ; // 修改temp属性的内容 System.out.println("fun()方法调用之前:" + d1.temp) ; fun

Java面向对象基础--构造方法私有化

1.对构造方法进行封装 class Singleton{ private Singleton(){ // 将构造方法进行了封装,私有化 } public void print(){ System.out.println("Hello World!!!") ; } }; 2.使用 被私有化构造方法的Singleton类,不能在外部直接实例化. class Singleton{ private Singleton(){ // 将构造方法进行了封装,私有化 } public void pri

Java面向对象基础--this关键字的解析

this关键字的作用: 1.表示类中的属性. class Person{ // 定义Person类 private String name ; // 姓名 private int age ; // 年龄 public Person(String name,int age){ // 通过构造方法赋值 this.name = name ; // 为类中的name属性赋值 this.age = age ;// 为类中的age属性赋值 } public String getInfo(){ // 取得信息

Java面向对象基础--代码块

1.普通代码块 public class CodeDemo01{ public static void main(String args[]){ { // 普通代码块 int x = 30 ; // 就属于一个局部变量 System.out.println("普通代码块 --> x = " + x) ; } //int x = 100 ; // 与局部变量名称相同 System.out.println("代码块之外 --> x = " + x) ; }

Java面向对象基础--内部类

1.什么是内部类? 一个类中还存在另外一个类,则成为内部类. class Outer{ // 定义外部类 private String info = "hello world" ; // 定义外部类的私有属性 class Inner{ // 定义内部类 public void print(){ // 定义内部类的方法 System.out.println(info) ; // 直接访问外部类的私有属性 } }; public void fun(){ // 定义外部类的方法 new In