一,JavaScript中的創建對象(複習)
<script>
//直接創建式
var xuesheng = new Object()
xuesheng.name="小明";
xuesheng.dohomework=function(){
console.log(xuesheng.name+"正在寫作業");
}
xuesheng.dohomework();
//初始化器方式
var xuesheng = {
name:"小明",
dohomework:function(){
console.log(this.name+"正在做作業") ;
}
}
xuesheng.dohomework();
//原型式
function Student(){
}
Student.prototype.name="學生";
Student.prototype.mobile=110;
Student.prototype.dushu=function(){
console.log(this.name+"在讀書");
}//定義
var xuesheng=new Student();//再創建對象
xuesheng.dushu();//然後使用
//構造函數式
function Student(age){
this.name="小明";
this.age=age;
this.dohomework=function(){
console.log(this.name+"在寫作業");
}
}
var bingo= new Student(12);
bingo.dohomework();
//混合式
function Daxuesheng(name,age){
this.name=name;
this.age=age;
}
Daxuesheng.prototype.zhuangtai=function(){
console.log(this.name+"今年"+this.age+"歲了");
}
var xuexi=new Daxuesheng("小紅","15");
xuexi.zhuangtai();
</script>
二、java中的創建對象
1、對象的屬性和方法以及類
1、Java中將現實對象中的信息稱爲屬性(也叫全局變量)
,將現實對象中的功能稱爲方法。
2、Java中的“類”:
Java語言把一組對象中相同屬性和方法抽象到一個Java源文件就形成了類。
2、如何定義類
1、定義一個類的步驟:1、定義類名;2、定義類的屬性;3、定義類的方法
2、
public class Test{
String name;
int id;
public void write(){
}
}
三、對象的創建和使用
1、創建:通過new關鍵字創建對象。創建對象又稱實例化對象。
Test student = new Test();
2、使用:
student.name="小明";//調用屬性
student.write();//調用方法
四、類與對象
1、類是創建對象的模板,確定對象將會擁有的屬性和方法。
2、類是對象的抽象化;對象是類的具體化。
3、類是一種數據類型,是對象的數據類型(不同於int等基本類型:類具有方法)。
五、面向對象與面向過程
1、面向對象是一種編程思想,這種編程思想凸顯對象在編程過程中的重要作用。
什麼是面向對象呢?簡單的說就是讓對象成爲類與類之間的“通信”的橋樑,
通過對象使類之間形成有機的整體。
面向對象編程語言以對象爲中心,以消息爲驅動,即程序=對象+消息;
2、面向過程編程語言則以過程爲中心,以算法爲驅動,即程序=算法+數據;
3、區別
1、面向對象是從宏觀方面思考問題,而面向過程可以說是從細節處思考問題。
2、在面向對象中,也存在面向過程。
六、如何定義方法
1、
訪問控制符 [修飾符] 返回值類型 方法名( [參數] ){
//方法體
}
eg.
public static void move(String a ){
system.out.println(a);
}
七、方法規範
1、訪問控制符——public、protected、友好的、private。
控制訪問範圍
2、修飾符
static修飾符用於限制方法的調用方式
1、static修飾的方法可以直接使用類名調用也可以使用類創建的對象調用;
2、非static修飾的方法只能使用類創建的對象調用。
3、其它常用方法修飾符有final和synchronized
3、返回值類型
1、如果方法沒有返回值,需要用void表示。
2、方法返回基本數據類型的數據,則返回值類型必須是返回數據所屬的數據類型
或者精度更高的數據類型(針對於數值類型的數據)。
3、方法返回引用數據類型的數據,則返回值類型必須是返回數據所屬的數據類型
或者其父類。
4、方法如果有返回值,則必須藉助return關鍵字將數據返回;
4、方法名
1、遵循標識符命名規則;
2、首字母必須小寫,如果由多個單詞組成,從第二個單詞開始首字母必須大寫;
3、方法名一般由一個動詞或者動名詞構成。
5、參數
1、方法可以有多個參數,各個參數之間用逗號(,)間隔。
2、方法的參數在整個方法內有效。
3、方法參數前面的數據類型用於限制調用方法時所傳具體數據的數據類型;
6、動態參數
public class Test {
public static void print(int... numbers) {
for (int number : numbers) {
System.out.println(number);
}
}
public static void main(String[] args) {
print(1, 2, 3, 4, 5);
}
}
注意:
1、動態參數實質爲數組;
2、動態參數必須位於參數列表的最後;
3、一個方法只能有一個動態參數
7、方法重載
1、同一個類中有多個方法名相同但參數列表不同的方法,這種現象稱爲方法重載(overload)。其中參數列表不同包括以下情形:
1、參數的個數不同
2、參數的對應類型不同
注意:
1、參數列表不同並不包含參數名不同,也就是說如果方法名相同,方法中參
數個數和類型相同,只是參數名不同,這樣也不能稱之爲方法重載。
2、方法中其它構成部分不參與比較:訪問控制符、修飾符、返回值類型。
2、eg.
public class Overload {
//方法重載,即方法同名
public void multiply(int a,int b) {
System.out.println(a*b);
}
public void multiply(int a,int b,int c) {
System.out.println(a*b*c);
}
public void multiply(double a,int b) {
System.out.println(a*b);
}
public static void main(String[] args) {
new Overload().multiply(2,3);//會調用第一個
new Overload().multiply(2,3,4);//會調用第二個
new Overload().multiply(2.0,3);//會調用第三個
}
}
3、一個類中有多個同名方法(構造方法或普通方法),在調用這些方法時,到底
調用哪個方法取決於調用方法時傳入的參數的數據類型和個數。