12.4

1       Java类的基本结构 

1.1     类和对象

1.1.1     面向对象和面向过程

 

1.1.2     什么是对象

 

1.1.3     什么是类

 

1.2     类和对象的声明

1.2.1     类的格式

 

1.2.2     成员属性:

 

1.2.3     创建对象

 

 

 

 

 

1.2.4     调用成员属性

 

1.2.5     方法的声明格式

 

1.2.6     方法的调用

 

 

1.2.7     可变参数

 

 

 

 

 

 

 

 

 

 

 

 

1.2.8     数组作为参数练习:

 可以使用  int [] array,也可以使用 int … array写法;

定义一个方法,参数是数组[可变参数],在方法中,对数组元素进行排序;

定义测试类和方法,在测试方法中输出排序结果.

 

 

 

 

 

 

1.2.9     方法参数小结:

 

 

我们发现如上的两个方法定义,方法swap方法参数是基本类型,在方法内部的a,b发生了改变,但是调用处的代码是不发生改变的,传递的是值;

 

 

第二个方法 swap2参数是一个数组,方法中对数组元素进行了修改,调用处的数组的值也发生了改变,传递的是值;但是这个值比较特殊,相当于调用处的数组引用,和方法处的数组引用是指向堆中的同一个区域.

 

 

 

 

1.2.10              递归调用:

 

 

如何理解:

采用debug

Step into :进入调用的方法查看执行细节.

 

 

 

1.2.11              学习习惯和方法:

  1. 初学者,0,学习方式可以是先模仿,再理解,最后变成自己的.
  2. 善于总结和提问: 老師的筆記一定不是你自己的”笔记”; 提问: 问自己,问同学,问度娘,老师.
  3. 定期[1周],整理知识: 梳理,系统化.
  4. 勤:多敲代码
  5. 其他。。。。。

 

动手+动口

1.2.12              方法的重载

 

 

 

不用定义很多的方法名,可读性更好了 。

 

 

 

同一个类Pig中,两个[多个]方法名 eat 相同,参数个数不同: eat()  0个参数  eat(String food)  一个参数 ;

 

 

如果方法名相同,参数个数相同?

 要看参数的类型 ;类型不同,也是重载;

 

 

 

个数相同,顺序不同:

 

重载:在同一個类中,方法名相同,参数项不同称为重载;参数项不同的含义是说,参数个数不同;或者参数个数相同但是类型不同或者顺序不同。

 

 

 

 

1.3     构造方法:

 

1.3.1     构造方法的特点:

 

 

1.3.2     默认的构造方法:

 

 

 

 

默认情况下:

 

 

 

1.3.3     语法要求:

 

 

1.3.4     构造的调用:

 

 

1.3.5     构造方法重载:

 

 

1.3.6     带参数构造的意义:

 

 

 

 

1.3.7     带参数构造练习 :

定义一个员工类,员工编号,姓名,部门,工资,部门经理,我们要求使用构造方法给属性进行赋值;

定义一个方法,输出员工的详细信息;

定义一个测试类,测试类创建员工对象同时对属性进行赋值,调用方法做输出.

 

 

对于构造而言,如果定义了一个带参数的构造方法,那么默认的无参数的构造将会被覆盖,也就是无参数的构造不存在了;没法再使用 new 类名();

所以通常情况下,我们再创建一个类,定义带参数的构造的时候,还会将默认的无参数的构造也显式定义出来。

 

 

 

 

1.3.8     This的使用:

this表示的是当前类的对象。

 

 

 

1.3.9     代码演示:

图书代码:

 

package day10;

 

/**

 *    图书类

 * @author Administrator

 *

 */

public class Book {

      String isbn; //9787540489304

      String name;//断舍离

      String publish;//出版社: 湖南文艺出版社

      double price; //闪 购 价  ¥37.30

     

      /**

       *     通过构造给属性赋值

       * @param isbn

       * @param name

       * @param publish

       * @param price

       */

      public Book(String isbn, String name, String publish, double price) {

           this.isbn = isbn;

           this.name = name;

           this.publish = publish;

           this.price = price;

      }

 

    /**

     * toString方法

     */

      public String toString() {

           return "Book [isbn=" + isbn + ", name=" + name + ", publish=" + publish + ", price=" + price + "]";

      }

     

     

     

     

 

}

 

 

 

 

测试类:

 

package day10;

/**

 *  测试类

 * @author Administrator

 *

 */

public class TestBook {

 

    public static void main(String[] args) {

        //构造对象

        Book book  = new Book("9787540489304","断舍离"," 湖南文艺出版社",37.30);

 

        //调用toString方法

        String info = book.toString();

   

        //输出结果

        System.out.println(info);

       

        System.out.println("*****************");

        System.out.println(book.toString());

       

 

        System.out.println("*****************");

        System.out.println(book);

    }

 

}

 

posted @ 2021-12-13 09:40  左边第三只猫  阅读(63)  评论(0)    收藏  举报