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 学习习惯和方法:
- 初学者,0,学习方式可以是先模仿,再理解,最后变成自己的.
- 善于总结和提问: 老師的筆記一定不是你自己的”笔记”; 提问: 问自己,问同学,问度娘,老师.
- 定期[1周],整理知识: 梳理,系统化.
- 勤:多敲代码
- 其他。。。。。
动手+动口
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);
}
}

浙公网安备 33010602011771号