首先建议你使用命名规范,其次,li的作用域只在launch();里面,它是一个局部变量,一个变量的作用域(不一定是生存域,也就是可见范围)判断最简单的方法是看它创建时的前面的一个 { 和与之对应的 }。
要想在整个类里可见,必须把它定义成Field member,
class MyLinkedList{
   static MyLinkedList head;
   MyLinkedList next;
   ........
   public void doSomething(){
      MyLinkedList previous=new MyLinkedList();
      System.out.println(next);
      System.out.println(previous);
   }
}
在整个范围next都起作用,而previous只在doSomething里起作用,
另外,在static的方法不能访问非static 的Field Member(如上例next),但是可访问static的(如head), static的Field Members 无论在哪个实例(也就是无论怎么new它)都是共享同一个的,而非static的,在每个实例里都是不同的。