zoukankan      html  css  js  c++  java
  • JAVA 根据类构建数组(用类处理数组信息) 初学者笔记

    package com.wana;
    
    import java.time.LocalDate;
    
    /**
     * @author JackZhao
     * @create 2020-03-24 下午 12:47
     */
    public class EmployeeTest {
        public static void main(String[] args) {
    
            Employee[] staff = new Employee[3];
            //构建employee数组
            staff[0] = new Employee("Carl Cracker", 75000, 1987, 12, 15);
            staff[1] = new Employee("Harry Hacker", 50000, 1989, 10, 1);
            staff[2] = new Employee("Tony Tester", 40000, 1990, 3, 15);
            //为数组填入对象
    
            for (Employee e : staff)
                e.raiseSalary(5);
            //像极了py的for语句实在好用,处理Employee数组staff。
            for (Employee e : staff)
                System.out.println("name=" + e.getName() + ",salary=" + e.getSalary() + ",hireDay="
                        + e.getHireDay());
    }
    }
    
    class Employee
    {
        private String name;
        private double salary;
        private LocalDate hireDay;
    
        public Employee(String n, double s, int year, int month, int day)//(构造器)处理Employee数组填入的对象信息
        {
            name = n;//此处均为实例字段变量而不是局部变量,例如:String name 则是个局部变量
            salary = s;
            hireDay = LocalDate.of(year, month, day);
        }
    
        public String getName()
        {
            return name;
        }//返回名字的方法
    
        public double getSalary()
        {
            return salary;
        }//返回薪水的方法
    
        public LocalDate getHireDay()
        {
            return hireDay;
        }//返回入职时间的方法
    
        public void raiseSalary(double byPercent)//增长薪水的方法
        {
            double raise = salary * byPercent / 100;
            salary += raise;
        }
    }
    /*原来可以这样用:1.根据一个类构建一个数组;
                     2.再用类中的方法处理填入数组对象的信息。*/

     2020-03-26

    参数顺序

    staff[0] = new Employee("Tom", 40000);
    //参数要一一对应,构造器Employee中是先String再double
    //附上Employee构造器:
    public Employee(String n, double s)
    {
    name = n;
    salary = s;
    id = 0;
    }

     for each循环

      for (Employee e : staff)//Employee变量e依次(从staff[0],staff[1],staff[2])遍历数组staff。
            {
                e.setId();
                //等价于staff[0].setId();
                // 等价于staff[1].setId();
                // 等价于staff[2].setId();
         }

    注意:实例变量和局部变量的使用;
    构造器与类同名,这样在构造对象时,构造器才会启动,对实例字段进行初始化(信息处理)

    隐式参数与显式参数

    public void raiseSalary(double byPercent)
        {
            double raise = salary * byPercent / 100;
          salary += raise;
        }
    
    /*关键字this将实例字段同局部变量区分开来/
    public void raiseSalary(double byPercent)
        {
            double raise = this.salary * byPercent / 100;
           this.salary += raise;//this指代隐式参数(Employee对象)
        }
    

     2020-04-22补充:

    package com.company;
    
    import java.lang.reflect.Array;
    import java.util.Arrays;
    
    /*创建数组时,所有元素初始化为0,如:布尔数组为false 对象数组为null*/
    public class array {
        public static void main(String[] args) {
            String[] s;//声明数组
            var a= new int[100];//创建数组
            int[] b={1,5,8,9,};//创建并初始化数组
            var d=new int[]{16,22};//创建·并初始化一个匿名数组
            /*二维数组(即数组数组)*/
            int[][] f;//声明
            f = new int[1][2];//初始化
            int[][] g={{1,25},{5,58}};//创建并初始化数组
            //二维数组需要一个嵌套for each语句来遍历;可使用Arrays.deepToString()打印二维数组。
            System.out.println(Arrays.deepToString(g));
            /*交换二维行*/
            int[] i =g[1];
            g[1]=g[0];
            g[0]=i;
            System.out.println(Arrays.deepToString(g));
    
    
    
    
    
        }
    }
    
  • 相关阅读:
    我的NopCommerce之旅(8): 路由分析
    我的NopCommerce之旅(7): 依赖注入(IOC/DI)
    我的NopCommerce之旅(6): 应用启动
    我的NopCommerce之旅(5): 缓存
    我的NopCommerce之旅(4): 定时任务之邮件
    我的NopCommerce之旅(3): 系统代码结构分析
    我的NopCommerce之旅(2): 系统环境及技术分析
    我的NopCommerce之旅(1): 系统综述
    关于CSS中部分浏览器兼容性问题的解决
    每天一个Js小demo之移动端全景图场景实现-全景装修图。主要知识点:css3,旋转角度检测
  • 原文地址:https://www.cnblogs.com/MR---Zhao/p/12558573.html
Copyright © 2011-2022 走看看