首页 > 学院 > 开发设计 > 正文

JAVA(3)

2019-11-14 15:39:22
字体:
来源:转载
供稿:网友

接口注意事项:

1.接口不能被实例化

2.接口中所有的方法都不能有主体  (不能有{ })

3.一个类可以实现多个接口

4.接口中可以有变量<但变量不能用PRivate和protected修饰>

附加:

接口中的变量,本质上都是static的,而且是final,不管加不加static修饰

java开发中,常把经常用的变量定义在接口中,作为全局变量使用。

<访问形式:接口名.变量名>

5.一个接口不能继承其他的类,但是可以继承别的接口

 

 

 

抽象类中可以有实现了的方法

接口中的方法一个都不能被实现

 

接口中定义变量有特殊要求

 

接口语法:

  class  类名  implement  接口 {

          方法;

          变量;

   }

 

小结:

接口是更加抽象的抽象的类

抽象类里的方法可以有方法体

接口里的所有方法都没有方法体

接口体现了程序设计的多态和高内聚低耦合的设计思想

 

package com.test4;public class Test{       public static void main(String[] args){     } }interface Fish{    public void swimming(); }  interface Bird{   public void fly(); }class Monkey{   int name;   public void jump()   {      System.out.println("ABC");    } }class LittleMonkey extends Monkey implement Fish,Bird{   public void swimming(){    }   public void fly(){   } }

java的继承是单继承(一个类最多只能有一个父类)

final-概念

final可以修饰变量或方

 

使用final可以避免被子类修改:

class Aaa{   //给方法用final修饰,表示不可以被修改,不可被覆盖   final public void sendMes()   {      System.out.println("发送消息");    } }

final使用:

1.当不希望父类的某个方法被子类覆盖(override)时,使用final关键字修饰

2.当不希望类的某个变量的值被修改,可以用final修饰 <final public void xxx()>

   如果一个变量是final,则必须赋初值,否则编译不了

3.当不希望类被继承时,可用final修饰 <final class xxx>

 

 

数组

一维数组

数组的必要性:

package com.test1;public class Demo5_1{      public static void main(String[] args){    //定义六个变量    //定义一个可以存放六个float类型的数组    float arr[]=new float[6];    //使用for循环赋值    //给数组的各个元素赋值    arr[0]=3;    arr[1]=5;    arr[2]=3.4f;    arr[3]=2;    arr[4]=50;        //算总体重[遍历数组]    float all=0;    for(int i=0;i<6;i++)    {         all+=arr[i];     }      System.out.println("总体重是:"+all);   } }

对象数组的使用:

package com.test1;import java.io.*;public class Demo5_2{   public static void main(String[] args){      //定义一个可以存放四只狗的对象数组   Dog dog[]=new Dog[4];      //给各个狗赋初值      //从控制台输入每个狗的信息[alt+j]快捷键   InputStreamReader isr=new InputStreamReader(System.in);   BufferedReader br=new BufferedReader(isr);   for(int i=0;i<4;i++)   {      dog[i]=new Dog();      System.out.println("请输入狗名");      //从控制台读取狗名      String name=br.readLine();      //将名字赋给对象       dogs[i].setName(name);       System.out.println("");       String s_weight=br.readLine();       float weight=Float.parseFloat(s_weight);       //将名字赋给对象       dog[i].setWeight(weight);    }     //计算平均体重     //计算总体重     for(int i=0;i<4;i++)    {      allWeight+=dogs[i].getWeight();     }     //计算平均体重     float avgWeight/dogs.length;     System.out.println("总体重="+allWeight+"平均="+avgWeight)   } }//定义一个狗类class Dog{    private String name;    private float weight;    public String getName(){      return name;    }    public void setName(String name){       this.name=name;    }    public float getWeight(){       return weight;    }    public void setWeight(float weight){       this.age=weight;    }    }

排序分类:

1、内部排序:

(交换式排序法、选择式排序法、插入式排序法)

2、外部排序法:

(合并排序法、直接合并排序法)

交换式排序法:冒泡排序法、快速排序法

 

冒泡排序:

package com.test1;public class Demo5_3{   public static void main(String[] args){     int arr[]={1,6,0,-1,9};   //排序   //外层循环,它决定一共走几趟   for(int i=0;i<arr.length-1;i++)   {    //内层循环,逐个比较,若前大于后则交换     for(int j=0;j<arr.length-1-i;j++)     {       if(arr[j]>arr[j+1])        {           //换位           temp=arr[j];           arr[j]=arr[j+1];           arr[j+1]=temp;         }   }} //输出最后结果   for(int i=0;i<arr.length;i++)   {      System.out.print(arr[i]+"");   }  排序方法封装到类中:class Bubble{    //排序方法   public void sort(int arr[])   {     int temp=0;     for(int i=0;i<arr.length-1;i++)     {       for(arr[j]>arr[j+1])       {           temp=arr[j];           arr[j]=arr[j+1];           arr[j+1]=temp;        }     } }

调用:Bubble bubble=new Bubble();

           bubble.sort(arr);

选择排序法:

class Select{   //选择排序   public void sort(int arr[])   {     //默认第一个数最小         for(int j=0;j<arr.length-1;j++)     {       int min=arr[j];       //记录最小数下标       int minIndxe=j;       for(int k=j+1;k<arr.length;k++)       {          if(min>arr[k])          {            //修改最小             min=arr[k];             minIndxe=k;            }         } }

插入式排序

将n个待排序的元素看成一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中有n-1个元素

class InsertSort{   //插入排序方法   public void sort(int arr[])   {       for(int i=1;i<arr.length;i++)      {         int insertVal=arr[i];         //insertVal准备和前一个数比较         int index=i-1;         while(index>=0&&insertVal<arr[index])                    //将arr[index]向后移动           arr[index+1]=arr[index];           //让index向前移动           index--;          }           //将insertVal插入到适当位置           arr[index+1]=insertVal;    }  }

多维数组

定义:

 类型 数组名[][]=new 类型[大小][大小]

package com.test1;public class Demo5_5{      public static void main(String[] args)        int a[][]=new int[4][6];        a[1][2]=1;    a[2][1]=2;    a[2][3]=3;      //将图形输出    for(int i=0;i<4;i++)    {       for(int j=0;j<6;j++)       {         System.out.print(a[j]+"");        }        //换行        System.out.println();        } }

二进制(原码、反码、补码):

1、二进制的最高位是符号位:0表示正数,1表示负数

2、正数的原码、反码、补码都一样

3、负数的反码=符号位不变,其他位取反

4、负数的补码=他的反码+1

5、0的反码、补码都是0

6、java没有无符号数

7、在计算机运算时候,都是以补码的方式来运算的

 

算数右移:地位溢出,符号位不变,并用符号位补溢出的高位

算数左移:符号位不变,低位补0

 

 

 

集合:

 

java集合类主要有以下几种:

1、List结构的集合类

 ArrayList类,LinkedList类,Vector类,Stack类

2、Map结构的集合类

 HashMap类,Hashtable类

3、Set结构的集合类

 HashSet类,TreeSet类

4、Queue结构的集合

 Queue接口

 

java集合的用法:

package com.test1;import java.util.*;public class Demo7{   public static void main(String[] args){      //定义ArrayList对象   ArrayList a1=new ArrayList();   //显示大小   System.out.println("al大小:"al.size());   }}

 

 


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表