目標(biāo)
今天學(xué)習(xí)了如何創(chuàng)建Java語言中的數(shù)組,和其使用方式逃延。初步了解了類和對(duì)象的概念捕虽。然后就是使用Java語句重寫之前用C語言寫過的兩個(gè)小程序重新寫了一下纺裁,盡然程序所用的語句不一樣蜜自,但是邏輯卻也還是那個(gè)邏輯菩貌,這也能夠看到我們學(xué)習(xí)C語言的必要性和好處,也通過了編寫兩個(gè)程序體驗(yàn)到了Java這門面向?qū)ο笳Z言的好處重荠。
數(shù)組的兩種定義方式和其基本的使用
class text{
public static void main(String[] args){
int[] score={1,2,3};
float[] height=new float[5];
String[] names={"jack","merry"};
height[0]=128.0f;
Random r=new Random();
r.nextInt(i:100);
int[] count = new int [10];
for(int i = 0; i <10;i++){
count[i] = r.nextInt(i:100);
}
}
}
在Java里面有很多方法是已經(jīng)定義好的箭阶,遍歷數(shù)組的方法也因此有好幾種
//數(shù)組輸出方式1也是我們最熟悉一種方式
for(int i = 0; i <10;i++){
System.out.print(count[i]+" ");
}
//數(shù)組輸出方式2
for(int temp:count){
System.out.print(temp +" ");
}
//數(shù)組輸出方式3使用了toString方法
System.out.println(Arrays.toString(count));
類和對(duì)象的概念
類:
coutact:【姓名 地址 email 電話號(hào)碼】8種基本類型:byte char boolean short int long double float
java里面除了8大基本類型之外都是對(duì)象
抽象的 不實(shí)際存在的 描述同一事物(具有共同的屬性和方法)
人類:概念 抽象 不能完成具體的事情
對(duì)象:
具體的,實(shí)際存在的戈鲁,某一類的實(shí)例化
對(duì)象都是創(chuàng)建出來的
可以完成具體的事情仇参,有內(nèi)存空間的
同一個(gè)類可以有多個(gè)對(duì)象
如何定義一個(gè)類
修飾符 class 類名{
這個(gè)類的一些屬性:成員變量
這個(gè)類的功能:方法
}
class Person{
String name;
int age;
float score;
String password;
char choice;
public void texts(){
System.out.print("哈哈哈");
}//沒有返回值 沒有參數(shù)的方式
public void test2(String name){
}//有一個(gè)參數(shù) 沒有返回值
public void text3(String name){
}//有一個(gè)返回值 有一個(gè)參數(shù)
public int text4(String name,int age){
return 0;
}//有多個(gè)參數(shù) 每個(gè)參數(shù)應(yīng)該用逗號(hào)隔開
public int text5(int...counts){
int sum=0;
for(int i=0;i<counts.length;i++){
sum+=counts[i];
}
return sum;
}//可變參數(shù) 相當(dāng)于數(shù)組
}
方法的使用
要分清調(diào)用的是(那個(gè)對(duì)象)方法
在類里面可以直接調(diào)用自己的方法
在外部必須通過對(duì)象來調(diào)用
class text2{
public static void mian(String[] args){
/*
創(chuàng)建Person類的一個(gè)對(duì)象 new
使用.訪問成員變量
對(duì)象一旦創(chuàng)建 屬性變量有初值
*/
Person zs=new Person();
/*
同一個(gè)類可以創(chuàng)建多個(gè)對(duì)象
兩個(gè)對(duì)象之間并無關(guān)系
*/
Person xw=new Person();
xw.age=10000;
xw.name="wangba";
System.out.print(xw.age);
System.out.print(xw.name);
/*
方法的使用
在類里面可以直接調(diào)用這個(gè)類的所有資源
在外部必須通過對(duì)象來調(diào)用
*/
}
}
1.存什么值:成員變量
2.完成什么功能:方法
封裝:
訪問權(quán)限:public private protected
public:公共的 想用就用(內(nèi)部可以用 外部也可以用)
private:私有的 只能自己用 外部無法訪問
protected:受保護(hù)的 外部(同一個(gè)包)可以訪問
把私有的東西封裝起來 不讓外部使用
需要給外部使用,就暴露出來
繼承:后面會(huì)學(xué)到類的繼承
多態(tài):
實(shí)際應(yīng)用
猜數(shù)字
class text1{
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
int[] count=new int[4];
Random r=new Random();
for(int i=0;i<4;i++)
{
int temp=r.nextInt(10);
boolean result=coutains(count,temp);
if(result){
//確保i對(duì)應(yīng)的位置能夠得到一個(gè)不重復(fù)的數(shù)字
i--;
}
else{
count[i]=temp;
}
}
Arrays.sort(count);
for(int i=0;i<4;i++){
System.out.print(count[i]+" ");
}
int countA=0,countB=0;
int[] yourCount=new int[4];
while(countA!=4){
System.out.print("請(qǐng)輸入數(shù)字:");
for(int i=0;i<4;i++)
{
yourCount[i]=scanner.nextInt();
}
for(int i=0;i<4;i++)
{
boolean result=coutains(yourCount,count[i]);
if(result==true){
int index=indexof(yourCount,count[i]);
if(index==i){
countA++;
}else{
countB++;
}
}
}
if(countA!=4)
{
System.out.print(countA+" A "+countB+" B ");
countA=0;
countB=0;
}
}
System.out.print("恭喜F诺睢U┢埂!F怕抓谴!");
}
public static boolean coutains(int[] val,int obj){
for(int i=0;i<val.length;i++){
if(val[i]==obj){
return true;
}
}
return false;
}
public static int indexof(int[] val,int obj){
for(int i=0;i<val.length;i++){
if(val[i]==obj){
return i;
}
}
return -1;
}
}
在這個(gè)程序里面我們可以感受到類里面的方法是可以直接調(diào)用的比如我們?cè)诔绦虻暮竺娑x的兩個(gè)方法,它們皆是有多個(gè)參數(shù)且有返回值得方法寞缝。其邏輯和C程序一脈相承癌压。
寫在后面
說實(shí)話,那個(gè)數(shù)組和對(duì)象在內(nèi)存里面的表現(xiàn)優(yōu)點(diǎn)難懂荆陆,有一絲絲學(xué)習(xí)C語言指針時(shí)的感覺滩届。可能是堆棧沒有具體的概念的關(guān)系吧被啼!