<span style="font-family:Microsoft YaHei;font-size:14px;"><span style="font-family:Microsoft YaHei;font-size:14px;">class Car
{
//描述顏色
String color = "red";
//描述輪胎數
int num = 4;
//運行行爲
void run()
{
System.out.println(color+"..."+num);
}
}
class CarDemo
{
public static void main(String[] args)
{
//生產汽車。在java中通過new操作符來完成。
//其實就是在堆內存產生一個實體。
Car c = new Car();//c就是一個類類型變量。記住:類類型變量指向對象。
//需求:將已有車的顏色改成藍色。指揮該對象做事情。在java中指揮方式是:對象.對象成員
c.color = "blue";
c.run();
Car c1 = new Car();
c1.run();
}
}</span></span>
<span style="font-family:Microsoft YaHei;font-size:14px;"><span style="font-family:Microsoft YaHei;font-size:14px;">class CarDemo
{
public static void main(String[] args)
{
new Car().num = 5;
new Car().color = "blue";
new Car().run();
}
}</span></span>
<span style="font-family:Microsoft YaHei;font-size:14px;"><span style="font-family:Microsoft YaHei;font-size:14px;">class CarDemo
{
public static void main(String[] args)
{
Car q = new Car(); //可以直接將匿名對象作爲實際參數進行傳遞
show(q); // show(new Car());
}
public static void show(Car c)
{
c.num = 3;
c.color = "black";
c.run();
}
}</span></span>
<span style="font-family:Microsoft YaHei;font-size:14px;"><span style="font-family:Microsoft YaHei;font-size:14px;">class Person
{
private int age;
public void setAge(int a)
{
if (a>0 && a<130)
{
age =a;
}
else
System.out.println("illegal age");
}
public int getAge()
{
return age;
}
void speak()
{
System.out.println("age:"+age);
}
}
class PersonDemo
{
public static void main(String[] args)
{
Person p = new Person();
System.out.println(p.getAge());
p.setAge(20);
System.out.println(p.getAge());
p.speak();
}
}</span></span>
8、構造函數:與類名同名,無返回值類型,無return語句。
<span style="font-family:Microsoft YaHei;font-size:14px;"><span style="font-family:Microsoft YaHei;font-size:14px;">class Person
{
private String name;
private int age;
public void setName(String n)
{
name = n;
}
public String getName()
{
return name;
}
public void setAge(int a)
{
if (a>0 && a<130)
{
age =a;
}
else
System.out.println("illegal age");
}
public int getAge()
{
return age;
}
{
cry();//構造代碼塊
}
Person()
{
System.out.println("A:name="+name+"---age="+age);
}
Person(String n)
{
name = n;
System.out.println("A:name="+name+"---age="+age);
}
Person(String n ,int a)
{
name = n;
age = a;
System.out.println("A:name="+name+"---age="+age);
}
public void cry()
{
System.out.println("cty.....");
}
}
class PersonDemo2
{
public static void main(String[] args)
{
Person p = new Person();
p.setName("mss");
p.setAge(13);
System.out.println("name="+p.getName()+";age="+p.getAge());
Person p1 = new Person("mashasha");
p1.setName("mashashagai");
p1.setAge(23);
System.out.println("name="+p1.getName()+";age="+p1.getAge());
Person p2 = new Person("mashasha",22);
}
}</span></span>
<span style="font-family:Microsoft YaHei;font-size:14px;"><span style="font-family:Microsoft YaHei;font-size:14px;">class Person
{
private String name;
private int age;
Person(String name)
{
this.name = name;//出現同名變量,將成員變量省略的this.顯示的寫出來。
}
Person(String name ,int age)
{
this();//用於構造函數之間進行相互調用
this.age = age;
}
public void speak()
{
System.out.println("My name is "+name+" . I am "+age+" years old .");
//成員變量省略了this.
//也可以寫成System.out.println("My name is "+this.name+" . I am "+this.age+" years old .");
show();
//成員函數省略了this.
//也可以寫成this.show();
}
public void show()
{
System.out.println("name="+name+"---age="+age);
}
/*
需求:給人定義一個功能用於比較年齡是否相同,也就是是否爲同齡人。
*/
public boolean compare(Person p)
{
return this.age==p.age;//本類功能使用本類對象
}
}
class PersonDemo3
{
public static void main(String[] args)
{
Person p = new Person("mss",20);
Person p1 = new Person("mashasha",20);
p.speak();
p1.speak();
boolean b = p.compare(p1);
System.out.println(b);
}
}</span></span>
<span style="font-family:Microsoft YaHei;font-size:14px;"><span style="font-family:Microsoft YaHei;font-size:14px;">//java的說明書通過文檔註釋來完成。
/**
這是一個可以對數組進行操作的工具類,該類中提供了,獲取最值,排序等功能。
@author mashasha
@version V1.1
*/
class ArrayTool
{
private ArrayTool(){}//構造函數私有化,強制該類不能建立對象,防止內存中產生一些沒有用的對象。
/**
獲取一個整形數組中的最大值。
@param arr 接受一個int類型的數組。
@return 會返回一個該數組中的最大值。
*/
public static int getMax(int[] arr)
{
int max = 0;
for (int i=1; i<arr.length; i++ )
{
if(arr[i]>arr[max])
max = i;
}
return arr[max];
}
/**
獲取一個整形數組中的最小值。
@param arr 接受一個int類型的數組。
@return 會返回一個該數組中的最小值。
*/
public static int getMin(int[] arr)
{
int min = 0;
for (int i=1; i<arr.length; i++ )
{
if(arr[i]<arr[min])
min = i;
}
return arr[min];
}
/**
給int數組進行選擇排序。
@param arr 接受一個int類型的數組。
*/
public static void selectSort(int[] arr)
{
for (int x=0;x<arr.length-1;x++)
{
for (int y=x+1;y<arr.length;y++)
{
if (arr[x]>arr[y])
{
swap(arr,x,y);
}
}
}
}
/**
給int數組進行冒泡排序。
@param arr 接受一個int類型的數組。
*/
public static void bubbleSort(int[] arr)
{
for (int x=0;x<arr.length-1;x++)
{
for (int y=0;y<arr.length-x-1;y++)
{
if (arr[y]>arr[y+1])
{
swap(arr,y,y+1);
}
}
}
}
/**
給int數組中的元素進行位置置換。
@param arr 接受一個int類型的數組。
@param a 要置換的位置。
@param b 要置換的位置。
*/
private static void swap(int[] arr,int a,int b)//不需要提供給用戶,將其私有化。
{
int temp = arr[a];
arr[a] = arr[b];
arr[b] = temp;
}
/**
用於打印數組中的元素。
@param arr 接受一個int類型的數組。
*/
public static void printArray(int[] arr)
{
System.out.print("{");
for (int x=0;x<arr.length;x++)
{
if (x!=arr.length-1)
{
System.out.print(arr[x]+",");
}
else
System.out.println(arr[x]+"}");
}
}
}
public class ArrayToolDemo
{
public static void main(String[] args)
{
int[] arr = {3,4,8,43,22,77,23,576};
//ArrayTool tool = new ArrayTool();
int max = ArrayTool.getMax(arr);
System.out.println("max="+max);
int min = ArrayTool.getMin(arr);
System.out.println("min="+min);
ArrayTool.printArray(arr);
ArrayTool.selectSort(arr);
ArrayTool.printArray(arr);
}</span></span>
<span style="font-family:Microsoft YaHei;font-size:14px;"><span style="font-family:Microsoft YaHei;font-size:14px;">class StaticCode
{
StaticCode()
{
System.out.println("a");
}
//靜態代碼塊,給類進行初始化。
static
{
System.out.println("b");
}
//構造代碼塊,給對象進行初始化。
{
System.out.println("c");
}
//構造函數,給對應對象進行初始化。
StaticCode(int x)
{
System.out.println("d");
}
}
class StaticCodeDemo
{
public static void main(String[] args)
{
new StaticCode(4);
}
}</span></span>
<span style="font-family:Microsoft YaHei;font-size:14px;"><span style="font-family:Microsoft YaHei;font-size:14px;">class Single
{
private Single(){} //將構造函數私有化。
private static Single s = new Single(); //在本類中創建一個本類對象。
public static Single getInstance() //提供一個方法可以獲取到該對象。
{
return s;
}
}</span></span>
<span style="font-family:Microsoft YaHei;font-size:14px;"><span style="font-family:Microsoft YaHei;font-size:14px;">class Single
{
private Single(){} //將構造函數私有化。
private static Single s = null; //在本類中創建一個本類對象。
public static Single getInstance() //提供一個方法可以獲取到該對象。
{
if(s==null)
s = new Single(); //對象延時加載。
return s;
}
}</span></span>