欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java基礎的詳細了解第二天

 更新時間:2021年08月09日 16:42:24   作者:zsr6135  
這篇文章對Java編程語言的基礎知識作了一個較為全面的匯總,在這里給大家分享一下。需要的朋友可以參考,希望能給你帶來幫助

1、方法的基本定義

限制條件:本次所講解的方法指的是在主類中定義,并且由主方法由主方法直接調用。

方法是指就是一段可以被重復調用的代碼塊。 在java里面如果想要進行方法的定義,則可以使用如下的方法進行完成。

public static 方法返回值 方法名稱([參數類型 變量,....]){
    方法體代碼 ; 
     return [返回值];
}

在定義方法的時候對于方法的返回值由以下兩類:void沒用返回值和數據類型(基本類型、引用類型)。

public class TestDemo{
   public static void main(String args[]){
   //如果要在主方法里面調用該方法,該方法一定要用static進行修飾
   	print();	//主方法里面直接調用
   	print();	//主方法里面直接調用
   	print();	//主方法里面直接調用
   }
   public static void print(){
   	System.out.println("Hello,World!");
   }
}

但是有一點要特別的注意就是當返回值為void類型的時候,那么該方法當中可以直接使用return來直接結束調用。在一般情況下和if判斷使用。

public class TestDemo{
	public static void main(String args[]){
	//如果要在主方法里面調用該方法,該方法一定要用static進行修飾
		print1(10);	//主方法里面直接調用
		print1(20);	//主方法里面直接調用
		print1(30);	//主方法里面直接調用
	}
	public static void print(){
		System.out.println("Hello,World!");
	}
	public static void print1(int x){
		if(x == 20){	//表示方法結束的判斷
			return ;	//此語句之后的代碼不在執(zhí)行
		}
		System.out.println("x = " + x);
	}
}

image-20210726155126462

image-20210726155831793

2、方法重載

方法的重載是指:方法名稱相同,參數的類型或個數不同。

public class TestDemo2{
	public static void main(String args[]){
	//如果要在主方法里面調用該方法,該方法一定要用static進行修飾
		System.out.println(add(10,20));	//主方法里面直接調用
		System.out.println(add(10,20,30));	//主方法里面直接調用
		System.out.println(add(10.1,20.1));	//主方法里面直接調用
	}
	public static int add(int a,int b){
		return  a + b;
	}
	public static int add(int a,int b,int c){
		return a + b + c;
	}
	public static double add(double a, double b){
		return a + b;
	}
}

image-20210726160923526

在方法重載的時候有一個重要的原則就是要求方法的返回值類型一定要相同。

通過用System.out.println()輸出發(fā)現所有的類型都可以進行輸出,由此我們可以發(fā)現這個方法是一個重載的方法。

3、方法的遞歸調用

方法的遞歸調用指的是一個方法調用自己的形式。如果要進行方法的遞歸操作往往都具備以下特點

方法必須有一個遞歸的結束條件

方法在每次遞歸處理的時候一定要做出一些變更

image-20210726164358510

計算60!

public class TestDemo4{
	public static void main(String args[]){
		System.out.println(mul(60));	
	}
	public static double mul(double num){
		if (num == 1){
			return 1;
		}
		return num * mul(num - 1);
	}
}

計算結果:

8.320987112741392E81

其實我們在使用while的循環(huán)操作大部分都可以使用遞歸,而使用遞歸是因為主要一個方法可以執(zhí)行的操作很多,而且結構簡單、好。

4、面向對象的前身是面向過程

兩者的區(qū)別:籠統的將最好的例子就是面向過程是解決問題,面向對象是模塊化設計。對于現在的程序就像是汽車組裝,不同的工廠生產不同零件,將這些零件組裝在一起可以形成一個汽車,當我們零件壞了的時候還可以進行配裝。

面向對象在實際上還有很多的特點

  • 封裝性:內部的操作對外部而言是不可見的。
  • 繼承性:在上一輩的基礎上繼續(xù)發(fā)展。
  • 多態(tài)性:這是我們最為重要的一個環(huán)節(jié),利用多態(tài)性才可以得到良好設計。

三個階段:OOA(面向對象分析)、OOD(面向對象設計)、OOP(面向對象編程) 專業(yè)化術語

5、類與對象

類和對象是面向對象核心所在,也是所有概念的基礎。類屬于我們的引用類型,所以類的使用會牽扯到我們的內存分配問題

所謂的類就是一個共性的概念,而對象就是一個具體可以使用的事物。

類的組成:方法(操作行為)、屬性(變量,描述每一個對象的具體特點)。

類的定義一般有class進行聲明

class 類名稱{
	屬性1;	//屬性可以是多個
    屬性2;
}

此時的方法不在由主類進行調用,而是要通過對象進行調用。

聲明實例化對象

class Person{	//定義一個類首先要將類的名稱每個首字母進行大寫
	public void info(){
		System.out.println("name = "+ name + "\nage = " + age);
	}
}
public class TestDemo5{
	public static void main(String args[]){
		//實例化對象第一種方式
		Person person = new Person();
		person.name = "張三";	//設置對象中的屬性值
		person.age = 13;	//設置對象中的屬性值
		person.info();
		//實例化對象第二種方式
		Person person1 = null;
		person1 = new Person();
		person1.info();
	}	
}

image-20210726175038491

image-20210727163822257

image-20210727161759502

image-20210727164325831

引用數據類型最大的特征在于內存的分配操作,只要出現關鍵字new那么只有一個解釋:開辟新的內存(內存是不可能無限開辟的,所以這個時候所謂的性能調優(yōu)調整的就是內存問題)。

內存分析

我們使用的內存空間分為兩塊:堆內存空間(保存真正的數據,保存對象的屬性信息)和棧內存空間(保存的堆內存的地址,堆內存操作權,簡單理解叫保存對象的名稱),所有數據類型必須在開辟空間后才能使用。如果使用了未開辟的數據類型則會出現NullPointerException,只有引用數據類型(數組、類、接口)才會產生此類異常,以后出現了根據錯誤位置觀察其是否進行實例化對象。

image-20210727164540802

引用傳遞

引用傳遞的本質就在于別名,而這個別名只不過是放在我們棧內存當中,一塊堆內存可以被多個棧內存所指向。

class Person{	//定義一個類首先要將類的名稱每個首字母進行大寫
	String name;
	int age;
	public void info(){
		System.out.println("name = "+ name + "\nage = " + age);
	}
}
public class TestDemo5{
	public static void main(String args[]){
		//實例化對象第一種方式
		Person per = new Person();
		per.name = "張三";	//設置對象中的屬性值
		per.age = 13;	//設置對象中的屬性值
		per.info();
		//實例化對象第二種方式
		Person per1 = null;
		per1 = new Person();
		per1.name = "小于子";
		per1.age = 30;
		per1.info();
		//此步驟就是引用傳遞的操作
		Person per2 = per1;
		per2.name = "狗剩";
		per1.info();
	}	
}

image-20210727170204489

總結

本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關注腳本之家的更多內容!

相關文章

  • Java通過底層原碼了解數組拷貝

    Java通過底層原碼了解數組拷貝

    一般說起數組的拷貝,首先想到的就是用循環(huán)對數組進行拷貝。但其實JAVA為我們提供了一些拷貝數組比較方便的方法,有完全拷貝的方法,也有部分拷貝的方法。接下來就一一介紹這些方法
    2022-07-07
  • java中如何獲取時間戳的方法實例

    java中如何獲取時間戳的方法實例

    時間戳通常是一個字符序列,唯一地標識某一刻的時間,所以下面這篇文章主要給大家介紹了關于java中如何獲取時間戳的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧。
    2017-11-11
  • Flink開發(fā)IDEA環(huán)境搭建與測試的方法

    Flink開發(fā)IDEA環(huán)境搭建與測試的方法

    這篇文章主要介紹了Flink開發(fā)IDEA環(huán)境搭建與測試的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-03-03
  • java發(fā)送短信系列之限制發(fā)送頻率

    java發(fā)送短信系列之限制發(fā)送頻率

    這篇文章主要為大家詳細介紹了java發(fā)送短信系列之限制發(fā)送頻率,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-02-02
  • 30分鐘入門Java8之方法引用學習

    30分鐘入門Java8之方法引用學習

    在Java8中,我們可以直接通過方法引用來簡寫lambda表達式中已經存在的方法,這篇文章主要介紹了30分鐘入門Java8之方法引用學習,有興趣可以了解一下。
    2017-04-04
  • Maven deploy plugin使用方式

    Maven deploy plugin使用方式

    這篇文章主要介紹了Maven deploy plugin使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Java中的反射機制詳解

    Java中的反射機制詳解

    這篇文章主要介紹了JAVA 反射機制的相關知識,文中講解的非常細致,代碼幫助大家更好的理解學習,感興趣的朋友可以了解下
    2021-09-09
  • 如何用Maven開發(fā)Spring?Boot項目詳解

    如何用Maven開發(fā)Spring?Boot項目詳解

    SpringBoot是一個集成Spring框架優(yōu)點的開源后臺開發(fā)框架,自動化配置和內嵌容器等特性減少了配置工作量,使得開發(fā)者可以更加專注于業(yè)務邏輯,這篇文章主要介紹了如何用Maven開發(fā)Spring?Boot項目,需要的朋友可以參考下
    2024-09-09
  • Java語言實現快速冪取模算法詳解

    Java語言實現快速冪取模算法詳解

    這篇文章主要介紹了Java語言實現快速冪取模算法詳解,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • 深入理解Spring事務及傳播機制之原理解析與實際應用

    深入理解Spring事務及傳播機制之原理解析與實際應用

    Spring事務管理機制提供了多種傳播行為,可以控制事務的范圍和隔離級別,保證數據一致性和完整性。在實際應用中,需要根據具體業(yè)務場景選擇合適的傳播行為實現事務控制
    2023-04-04

最新評論