溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

構造方法及其重載&關鍵字&機房實訓課總結

發(fā)布時間:2020-06-29 00:04:18 來源:網絡 閱讀:102 作者:wx5db39f8c13594 欄目:編程語言

構造方法:
在一個類中定義方法如果同時滿足一下三個條件,該方法則稱為構造方法
1 方法名與類名相同
2 字方法名的前面沒有返回值類型的聲明
3 在方法中不能使用return語句返回一個值

構造方法的作用:
1、構造對象,執(zhí)行了構造方法,就一定會在堆內存上為對象開辟獨立的內存。
2、初始化對象屬性,可以為對象屬性做一些初始化工作。
注意:構造方法沒有返回值,構造方法的方法名必須和類名相同 ,同一個類中,多個構造方法之間也是可以相互調用的,一般來說,定義好一個類后,一般都會準備兩個構造方法,一個是沒有參數的,一個包含全部屬性參數的。

構造方法的重載
方法名相同,但參數不同的多個方法,調用時會自動根據不同的參數選擇相應的方法。

eg:定義完一個帶參數的person()構造方法后,就可以通過此構造方法來創(chuàng)建一個person對象
Person類中定義了兩個構造方法,它們構成了重載。在創(chuàng)建p1對象和p2對象時,根據傳入參數的不同,分別調用不同的構造方法。

如果同一個類中包含了兩個或兩個以上方法的方法名相同,但參數列表不同,則被稱為方法重載
注意:在Java中的每一類都至少有一個構造方法,如果在一個類中沒有定義的構造方法,系統(tǒng)會自動為這個類創(chuàng)建一個默認的構造方法,這個默認的構造方法沒有參數,在其方法體中沒有任何代碼,即什么也不做。
三個原則:在同一個類中;方法名相同;參數列表不同,即參數個數或對應位置上的類型不同。this關鍵字代表當前所在類,將來產生的對象,即將來用該類的new出來的對象用于獲取當前類的對象的引用。

this關鍵字:通過this關鍵字可以明確地去訪問一個類的成員變量,解決與局部變量名稱沖突的問題

“this”代表了當前所在類將來產生的對象,即將要用該類new出來的對象,用于獲取當前類的對象的引用。

this指代當前對象可以調用當前類的成員,
調用構造方法,this出現(xiàn)在構造方法中的第一行
屬性一般不在類以外的方法直接調用,需要對外提供方法:
public void setName(string name){
this.name=neme;
}
public void setAge(int age){
this.age=age;
}
獲取值時:
public string getName(){
return this.name;
}
public string getAge(){
return this.age;
}

Java引用庫跟文件目錄結構相似
包的概念:類庫分級可以解決類的命名沖突,類文件管理等問題。
package用來定義包
package語句必須作為Java源文件的第一條非注釋性語句
import 導入包
import 包名.; //導入指定句中的所有類。
封裝是面向對象的特性之一
封裝實際上把該隱藏的隱藏,該暴露的暴露,這些都需要通過Java訪問控制符來實現(xiàn)。
訪問控制機制
private:只能被當前類中其他成員訪問,類外看不到
缺?。嚎梢员煌话兴蓄愒L問
protected(子類訪問權限):被聲明為protected的成員既可以被同一個包中的其他類訪問。
public:任意位置可以訪問**

public class Student{
//成員
private String name;
private String id;
public int count=0;
}
public Student(string name,string id){
this.name=name;
this.id=id;
}
publicc Student(){
}
public void setName(string name){
this.name=name;}
public string getName(){
return this.name;}
public void setId(string id){
this.id=id;}
public string getId(){
return this.id;}
public string toString(){
return“name:”+name+“,id:”+id;
}

主函數
package
public class Main{
public static void main(string args[]){
student student=new student("AA","1502001");
student student1=new student("BB","1502002");
system.out.println(student.tostring());
}
}
靜態(tài)成員static

用于輸出計算,將動態(tài)變?yōu)殪o態(tài),

普通方法和靜態(tài)方法是否可以相互調用
靜態(tài)方法不能指向非靜態(tài)方法
靜態(tài)方法可以在任意方法調用

上機課程作業(yè)

1 對任何一個自然數n,如果它是偶數,那么把它砍掉一半;如果它是奇數,那么把(3n+1)砍掉一半。這樣一直反復砍下去,最后一定在某一步得到n=1??ɡ澰?950年的世界數學家大會上公布了這個猜想,傳說當時耶魯大學師生齊動員,拼命想證明這個貌似很傻很天真的命題,結果鬧得學生們無心學業(yè),一心只證(3n+1),以至于有人說這是一個陰謀,卡拉茲是在蓄意延緩美國數學界教學與科研的進展……
程序內容:import java.util.;
public class Main{
public static void main(String arge[]){
int n;
Scanner in=new Scanner(System.in);
while(in.hasNext()){
n=in.nextInt();
int sum=0;
while(n!=1){
if(n%2==0){
n=n/2;
sum=sum+1;
}
else{
n=(3n+1)/2;
sum=sum+1;
}
} System.out.println(sum);
}
}
}

2讀入一個自然數n,計算其各位數字之和,用漢語拼音寫出和的每一位數字。
程序內容:import java.util.*;
public class Main{
public static void main(String args[]){
Scanner s=new Scanner(System.in);
while (s.hasNext())
{
String num=s.next();
String in[] = {"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
int sum=0,k=0;
int temp[]=new int[10];
for(int i=0;i<num.length();i++)
{
sum=sum+num.charAt(i)-48;
}
while(sum!=0)
{
temp[k]=sum%10;
sum=sum/10;
k++;
}
for(int i=k-1;i>=0;i--)
{
if(i!=0)
{
System.out.print(in[temp[i]]+" ");
}else {
System.out.print(in[temp[i]]);}

}
System.out.println();
}
}
}

3已知函數f(x)=x2+2+2x根據輸入的x值計算f(x),運算結果不超過int范圍,x>=0
程序內容:

import java.util.;
public class Main{
public static void main(String arge[]){
int x,y=0;
Scanner in =new Scanner(System.in);
while(in.hasNext()){
x=in.nextInt();
if(x>=0){
y=(int)(xx+2+Math.pow(2,x));
}
System.out.println(y);
}
}
}

4已知函數,輸入a、b的值計算結果,小數點后留2位
程序內容:import java.util.;
public class Main {
public static void main(String args[]){
int a,b;
double y;
Scanner in = new Scanner(System.in);
while(in.hasNext()){
a = in.nextInt();
b = in.nextInt();
y=Math.sqrt(aa+b*b)/2;
System.out.println(String.format("%.2f",y));
}
}
}

5已知函數 ,根據輸入的x值計算f(x)
程序內容:import java.util.;
public class Main{
public static void main(String arge[]){
int x=0,y=0;
Scanner in =new Scanner(System.in);
while(in.hasNext()){
x=in.nextInt();
if(x<-5){
y=xx+1;
}else if(x<8&&x>=-5){
y=xxx-1;
}else{
y=x+5;
}
System.out.println(y);
}
}
}
6編寫程序計算長方體的表面積和體積
程序內容:import java.util.;
public class Main {
public static void main(String args[]){
int c,k,g;
int b=0,t=0;
Scanner in = new Scanner(System.in);
while(in.hasNext())
{
c = in.nextInt();
k = in.nextInt();
g = in.nextInt();
t=ckg;
b=(ck+cg+kg)2;
System.out.println(b+" "+t);
}
}
}
7從一組數據中找出最大數和最小數
程序內容:import java.util.;
public class Main {
public static void main(String args[]){
int [] num=new int[50];
int max,i,min;
Scanner in = new Scanner(System.in);
while(in.hasNext())
{
num[0]=in.nextInt();
for(i=1;i<=num[0];i=i+1)
{
num[i]=in.nextInt();
}
max=num[0];
min=num[1];
for(i=2;i<=num[0];i++)
{
if(max<num[i])
{
max=num[i];
}else if(min>num[i])
{
min=num[i];
}
}
System.out.println(max+" "+min);
}
}
}

8從鍵盤接收三個數,按從小到大順序排序。
程序內容:import java.util.*;
public class Main {
public static void main(String args[]){
int [] num=new int[50];
int max,i,min;
Scanner in = new Scanner(System.in);
while(in.hasNext())
{
num[0]=in.nextInt();
for(i=1;i<=num[0];i=i+1)
{
num[i]=in.nextInt();
}
max=num[0];
min=num[1];
for(i=2;i<=num[0];i++)
{
if(max<num[i])
{
max=num[i];
}else if(min>num[i])
{
min=num[i];
}
}
System.out.println(max+" "+min);
}
}
}

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI