• 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];

     

     

     

  • 相关阅读:
    Winfrom Chart实现数据统计
    Python--面向过程编程
    老板喜欢什么样的员工
    python--装饰器
    python--浅拷贝和深拷贝
    Python基础-logging模块
    Python基础-subprocess模块
    Python基础-hashlib模块
    Python基础-ConfigParser模块
    Python基础-XML模块
  • 原文地址:https://www.cnblogs.com/Myth-FQ/p/4394296.html
Copyright © 2020-2023  润新知