华恩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+"");
}
}
}