Java对象、数组的基础运用

1对象的行为:

1.1内存分配栈和堆的区别

栈:保存局部变量的值(用来保存基本数据类型的值,保存类的实例的引用)

堆:用来存放动态产生的数据,比如new出来的对象

1.2调用方法

   >方法返回一个值,返回一个基本数据类型或引用类型传给方法调用者

   >方法不返回值,返回值声明为void

  >方法抛出一个异常给方法的调用者

复制代码
 1 public class Date{
 2         public int day,month,year;
 3 
 4         public int getDay(){//返回整型
 5             System.out.println("在getDay方法内部");
 6             return day;
 7     }
 8     public void printDate(){//不返回值
 9         System.out.println("在printDate方法内部");
10         System.out.println(month+"/"+day+"/"+year);
11     }
12 }        
复制代码

1.3方法签名 包括:1)访问修饰符,public、private、protected以及默认访问修饰符

              > public在本类、同包不同类、子类以及不同类中可以调用

              > protected在本类、同包不同类以及子类中可以调用

              > defuacule在本类以及同包不同类可以调用 (默认情况)

              > protected只有在本类中可以调用

   2)可选修饰符static、final、abstract、native、synchronized、native

              > 用static修饰的为静态成员,为类的所有对象共享(分配1个空间);在静态方法中,只能直接调用静态成员,不能直接调用非静态成员;成员方法中,可以直接调用静态成员与非静态成员。

   3)返回值(方法签名必须包括返回值的类型,如不需要返回值则使用void)

     4)方法名(方法签名必须出现在返回值之后,可以为任何有效Java标识符)

   5)形式参数列表(在方法名的后面必须是用一对括号括起来的形式参数列表)

     6)抛出的异常列表(方法可以抛出一个异常给方法调用者,如果方法抛出一个受检查的异常,该异常必须在方法签名中使用throes关键字声明)

复制代码
        public void readFromFile() throws IOException, SecurityException
复制代码

1.4形式参数与实际参数以及按值调用

形式参数列表:用于声明传递到方法中的数据类型

实际参数:传递给形式参数的数据

按值调用:当实际参数传递给形式参数时,实际参数的数据被复制给形式参数,在方法调用之间复制数据的过程称为按值调用

1.5方法重载

含义:一个类有两到多个同名但是有不同参数列表的方法

要求:参数类型不同、参数个数不同、参数列表不同

public class Calculator{    
  public  int multiply(int x ,int y ){    
       System.out.println("整数与整数相乘");        
       return x * y; 
}     
  public  double multiply(double x double y ){           
        System.out.println("实数与实数相乘");          
         return x * y; 
}    
  public  double multiply(int x ,double y ){        
        System.out.println("整数与实数相乘");      
         return x * y;  }
}

 

1.6构造器(构造方法)

用途:在对象实例化时被调用,初始化对象中的成员变量

属性:名字与类名一致,不能声明返回值,也不能返回void

注意:1)默认情况下,类中有一个无参构造方法;2)当写出带参构造方法系统默认的无参构造方法就不再生成

格式:

1  public class Radio{
2       public int volume;
3       public Radio(){}//无参构造器
4       public Radio(int x){//带参构造器
5          volume=x;
6      }      
7  }

在构造器中使用this

 1   public class Radio{
 2       public int volume;
 3       public int channel;
 4       public Radio(){
 5              this(4,10);
 6 }//无参构造器
 7       public Radio(int c){//带参构造器
 8            this(c,10);   
 9  }   
10      public Radio(int c,int v){//带参构造器
11           volume = v;
12           channel = c;
13  }       
14  }

  * 用this关键字构造器调用其他构造器,但this语句必须是构造器中的第一句可执行语句;

2数组:

2.1数组:

含义:存储在一个连续的内存块中的元素集合,每个元素是相同的数据类型,通过索引进行区分

创建数组:

    >声明一个数组的引用

        》 数据类型 [] 数组名; (推荐)或 数据类型  数组名 [];   // int [] sums;   或 int sums[];

        * 此时sums为一个引用,可以指向任何一个int类型的数组,不管数组中有多少元素,可以赋值为null

    >使用new关键字初始化数组,并指定数组大小

       》 数组名 = 数据类型 [长度]     //  sums= int sums[20];

       *此时sums被new关键字初始化,其值为默认值()

声明并分配空间:

    > double[] temps=new double[30];

声明并分配空间时元素初始化:

   > int score=new int[]{1,2,3....};          或者          int[] score={1,2,3....};

2.2数组长度

常见错误:ArrayIndexoutofBoundsException:数组下标越界

length属性代表数组的大小:

复制代码
 1     public void register(){
 2         int sums = new int[20];  3         System.out.println(users.length);  4         for(int i = 0; i < users.length; i++){
 5             System.out.println(i);   7         }   8      }  9                 
复制代码

 

foreach:用于数组组成或集合遍历

复制代码
1     public void showAllUsers(){
2         for (User user : users) {
3             if (user != null)
4                 System.out.println(user);
5         }
6     }
复制代码

2.3引用数组

Java中有九种类型的数组:八种基础数据类型数组和引用类型数组

 1 /**
 2 * employee员工类
 3 */
 4 
 5 public class Employee{
 6        public String name; // 姓名
 7      public String gender; // 性别
 8      public int age; // 年龄
 9      public Employee(){}//无参构造器
10      public Employee(String name,String gender, int age){
11               this.name = name;       
12               this.gender= gender;  
13               this.age= age;    
14 }
15 }
16 
17 
18 /**
19 *  数组演示
20 */
21 public class  Emp{
22        int [] sums = new int[20]; // 基础数据类型数组
23      Employee em =  new  Employee[20]; // 引用类型数组
24 }

2.4数组初始化

使用new关键字初始化数组,并指定数组大小

       > 数组名 = 数据类型 [长度]     // int []  sums= int sums[20];

声明并分配空间:

    > double[] temps=new double[30];

声明并分配空间时元素初始化:

   > int score=new int[]{1,2,3....};          或者          int[] score={1,2,3....};

1 public class  Emp{
2       int [] sums = new int[20];  3     int [] temps = new int[]{1,2,3...};
4     int [] score = {1,2,3...};
5  }

2.5多维数组

       同一维数组一样,多维数组也是对象,需要一个引用,该引用是在数据类型和变量名之间用多个中括号来声明的

   二位数组:

           int [][] sums = new int [10][10];

 

 

 

原文地址:https://www.cnblogs.com/Myth-FQ/p/4394296.html