Java学习笔记(二):枚举和多线程

论坛 期权论坛 脚本     
匿名技术用户   2020-12-28 02:22   83   0

1、枚举:

(1)For(Colorc:Color.values()); //获取Color枚举中所有对象;

这个语句遍历枚举color中的所有的对象;

(2)枚举中的构造函数不能为public,因为外部的类不能调用枚举的构造函数

如下代码:

enum enum2{
 //下面这三个对象必须写在枚举内部的第一行,否则出错
 Red("红色"),Green("绿色"),Black("黑色");
 private String name;
 
 void setName(String name)
 {
  this.name=name;
 }
 String getName()
 {
  return this.name;
 }
 //构造函数,不能为public,因为不能让外部类调用
 enum2(String name)
 {
  this.setName(name);
 } 
}
public class enum1
{
 public static void main(String args[])
 {
  //循环输出枚举中的对象的值;
  for(enum2 e:enum2.values())
  {
   System.out.println(e.getName());
  }
 }
}
2、关于@override:

用来表示该方法是覆写父类中的方法;

@override//放到需要覆写的函数前面即可
public void set()
{
 this.name=name;
}

3、多线程的两种机制:

(1)继承Thread实现(少用,各个线程不能共享资源):

如下代码:

class threadTest2 extends Thread
{
 public void run()
 {
  for(int i=0;i<10;i++)
  {
   System.out.println("threadTest2 is running");
  }
 }
}
public class ThreadTwo {
 public static void main(String[] args) {
  //通过调用start来调用run()
  threadTest2 t=new threadTest2();
  //下面的程序出现异常:一个线程只能启动一次
  t.start();
 // t.start();
 // t.start();
 // t.start();
  /*下面的是4个线程,但是各自执行各自的操作
   * new threadTest2().start();
   * new threadTest2().start();
   * new threadTest2().start();
   * new threadTest2().start();
   */
  for(int i=0;i<10;i++)
  {//此时程序threadTest2和main语句循环输出
   System.out.println("Main is running");
  }
 }
}
(2)通过Runnable接口实现多线程(常用,多个线程可以共享同一个资源):

下面是4个售票点同时卖票的例子(4个线程共享同一个资源):

如下代码:

class threadTest implements Runnable
{
 public void run()
 {
  for(int i=0;i<10;i++)
  {
   System.out.println(Thread.currentThread().getName()+"出票");
  }
 }
}
public class ThreadOne {

 public static void main(String[] args) {
  threadTest t=new threadTest();
  //启动了4个线程,共享同一个资源
  new Thread(t).start();
  new Thread(t).start();
  new Thread(t).start();
  new Thread(t).start();
 }
}







分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP