华恩JAVA班第14天

来源:互联网 发布:淘宝客需要怎么做 编辑:程序博客网 时间:2024/06/05 03:05

华恩JAVA班第14天

初始化
变量{
 实例(成员)static 静态
 局部
}
构造方法(初始化成员变量)
定义:名字与类名相同且没有返回值
public class Init1
{
 //定义一个构造方法
 public Init1(){
  System.out.println("Init1...");
 }
 public Init1(String content){
  System.out.println(content);
 }
 public static void main(String[] args)
 {
  for(int i =1;i<10;i++){
   newInit1();
  }
  for(int i =1;i<10;i++){
   newInit1("abc");
  }
 }
}

构造方法的重载
public class Kaoshi
{
 public static void main(String[] args) {
  Student stud1 = newStudent("张三","12345");
  Student stud2 = newStudent("李四");
  Student stud3 = newStudent("王五","123456","12345678");

 }
}
class Student{
 private String name;
 private String idcard;
 private String phone;
 public Student(String name,String idcard){
  this(name); //方法之间的调用
  this.idcard = idcard;
 }
 public Student(String name){
  this.name = name;
 }
 public Student(String name,String idcard,Stringphone){
  this(name,idcard);//方法之间的调用
  this.phone = phone;
 }
 public void setName(String name){
  this.name = name;
                                                                                                                                                                                               
}


构造方法初始化顺序
public class Init3
{
 public static void main(String[] args)
 {
  House house = newHouse();
  house.f();
 }
}
class windows{
 public Windows(int mark){
  System.out.println(mark);
 }
}
class House{
 //构造方法之前初始化
 Windows window = new Windows(1);
 public House(){
  window = new Windows(2);
 }
 Windows window2 = new Windows(3);
 public void f();
 System.out.println("print..");
}
说明构造方法的代码块先执行
public class Init3 {
 public static void main(String[] args){
  //测试静态数据的初始化
  Table table0 = null;
  System.out.println("++++++++");
  Table table1 = newTable();
  System.out.println("********");
  Table table2 = newTable();
  System.out.println("!!!!!!!!");
  new Cupboard();
 }
}
class Row1{
 Row1(int marker){
  System.out.println("Row1"+marker);
 }
 void f1(int marker){
  System.out.println("f1"+marker);
 }
}
class Table{
 static {
  //静态块
  System.out.println("staticblock...");
 }
 static Row1 row1 = new Row1(1);
 Table(){
 System.out.println("Table");
 row2.f1(1);
 }
 void f2(int marker){
  System.out.println("f2"+marker);
 }
 static Row1 row2 = new Row1(2);
 static {
  //静态块
  System.out.println("staticblock...");
 }
}
说明static的代码只会在类一开始的时候执行一次,且只执行一次
静态块和静态太吗之间按顺序执行,且都优于构造方法执行
class Cupboard
{
 Row1 row3 = new Row1(3);
 static Row1 row4 = new Row1(4);
 Cupboard(){
  System.out.println("Cupboard");
  row4.f1(2);
 }
}
先执行静态代码 再执行一般代码
声明不会调用构造方法

静态成员可以直接调用 但必须先初始化

public class Init3{
 public static void main(String[] args){
  //new Cups();
  //new Cups();
  Cups.cup1.f1(1);
  Cups.cup1.f1(1);
 }
}
class Cup
{
 int i = 0;
 Cup(int marker){
  System.out.println("Cup"+marker);
 }
 void f1(int marker){
  i++;
  System.out.println("f1"+marker);
       System.out.println("i = "+i);
 }
}
class Cups
{
 //显示的静态初始化
 static Cup cup1;
 static Cup cup2;
 static{
  cup1 = new Cup(1);
  cup2 = new Cup(2);
 }
 Cups(){
  cup1.f1(1);
  System.out.println("Cups...");
 }
}
实例变量初始化
public class Init3{
 public static void main(String[] args){
  for(inti=0;i<5;i++){
   newMugs();
  }
 }
}
class Mug
{
 Mug(int marker){
  System.out.println("Mug"+marker);
 }
 void f(int marker){
  System.out.println("f"+marker);
 }
}
class Mugs
{
 Mug mug1;
 Mug mug2;
 {
  mug1 = new Mug(1);
  mug2 = new Mug(2);
  System.out.println("mug1&mug2 init...");
 }
 Mugs(){
  System.out.println("Mugs");
 }
}

输出:
Mug 1
Mug 2
mug1 &mug2 init...
Mugs
Mug 1
Mug 2
mug1 &mug2 init...
Mugs
Mug 1
Mug 2
mug1 &mug2 init...
Mugs
Mug 1
Mug 2
mug1 &mug2 init...
Mugs
Mug 1
Mug 2
mug1 &mug2 init...
Mugs


数组的定义与遍历
public class Init3{
 public static void main(String[] args){
  float[] score = newfloat[30];  //值都是0
  int[] age = new int[10];
  String[] name = newString[30];
  Float[] score1 = newFloat[30];

  int[] a1 ={1,2,3,4,5,6};
  String[] b1 ={"a","b","c"};

  Emp[] emps = newEmp[5];
  Emp[] emps2 = {newEmp("aa"),new Emp("bb"),null};
  System.out.println("a1 ="+a1.length);
  System.out.println("emps2 ="+emps2.length);
  for(int i=0;i
   System.out.println(a1[i]);
  }
  for(Emp emp : emps2){
   if(emp !=null){
    System.out.println(emp.name);
   }
  }
 }
}
class Emp
{
 String name;
 int age;

 public Emp(String name){
  this.name = name;
 }
}


import:
import java.util.Arrays;
public class Init3{
 public static void main(String[] args){
  int[] a1 = {3,2,1,5,6,4};
  int[] a2;
  a2 = a1;
  for(int i=0;i
   a2[i] =a2[i]+1;
  }
  for(int i=0;i
   System.out.println(a1[i]);
  
  Emp[] emp1 = {new Emp("aa"),newEmp("bb")};
  Emp[] emp2 = emp1;
  emp2[0].name = "aaaa";
  Arrays.sort(a1);
  System.out.println(emp1[0].name);
  System.out.println(Arrays.toString(emp1));
  System.out.println(Arrays.toString(a1));
 }
}
可变参数:
public class NewVarArgs{
 //可变参数
 static void printArray(Object... args){
  for(Object obj : args){
   System.out.print(obj+"");
  }
  System.out.println();
 }
 static void printArray(Integer... args){
  for(Integer i : args){
   System.out.print(i+"");
  }
 }
 public static void main(String[] args){
  printArray(new Integer(1),newInteger(3));
  printArray(1,3.0F,4.8d,"f");
  printArray("a","b","c","d");

  printArray(4,5,6);
  printArray(2,newInteger(8));
 }
}
枚举类型

//enum 枚举类型
enum Spiciness{
 NOT,MILD,MEDTUM,HOT,FLAMING
}
enum Sex{
 MEN,WOMEN
}
public class SimpleUse{
 public static void main(String[] args){
  Spiciness s =Spiciness.MEDTUM;
  System.out.println(s);
  Sex men = Sex.MEN;
  for(Sexsex:Sex.values()){
   System.out.print(sex+"");
  }
 }
}