目录
一、了解面向对象,简单用Student类写一个例子,并测试运行
方法:移动(move()),加速speedUp(int speed),减速speedDown(int speed)等等。
定义名为Number的类,其中有两个整数型成员num1、num2,应声明为私有。
编写构造方法,赋予num1和num2初始值,再为该类定义加(add)、减(sub)、乘(multi)、除(div)等公共成员方法,分别对两个成员变量执行加减乘除的运算。
一、了解面向对象,简单用Student类写一个例子,并测试运行
//Student.java
package HomeWork;
public class Student {
private int id;
private String name;
private int age;
//无参构造方法 右键 Generate--Construct--不选--Select None
public Student() {
System.out.println("调用无参构造方法");
}
//有参构造方法 右键 Generate--Construct--Ctrl+A 全选中--OK
public Student(int id, String name, int age) {
System.out.println("调用有参构造方法");
this.id = id;
this.name = name;
this.age = age;
}
//右键--Generate--Getter and Setter自动生成
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//右键--Generate--toString
@Override
public String toString() {
return "HomeWork.Student{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
'}';
}
}
二、面向对象的知识点
- 建议一个类里写属性,一个类里写方法,不然容易乱。
- this.id = id;this 代表当前对象,把通过构造方法传递过来的值赋值给当前对象。
- 当new一个对象的时候,调用构造方法。如果你不写任何构造方法,Java会默认提供一个无参构造方法,只是我们看不到而已。如果自己写了任何一个构造方法,系统都不会提供这个默认的构造方法了。所以说!如果你自己写了一个有参构造方法,一定也要生成一下无参的构造方法。无参构造方法的特点是①方法名和类名一样 ②没有返回值 比如
public Student() { System.out.println("调用无参构造方法"); }
如果你加一个void,就是普通方法了,不是构造方法,跟下面setAge等没什么区别了。
-
构造方法和一般方法的不同:①构造方法是在new对象的时候运行,一般是给对象初始化,而一般的方法是在对象调用的时候才执行。②一个对象的建立,构造方法只执行一次,而一般方法可以被该对象调用多次。
三、练习
1.请定义一个交通工具(Vehicle)的类,
属性:速度(speed),体积(size)
方法:移动(move()),加速speedUp(int speed),减速speedDown(int speed)等等。
最后在测试类Demo 中的main()中实例化一个交通对象,并通过构造方法给他初始化speed、size的值,并通过get方法打印出来。另外,调用加速、减速的方法对速度进行改变(改变speed的值),改变后的速度值在main()方法中打印出来。
//Vehicle.java
package HomeWork;
//请定义一个交通工具(Vehicle)的类,
//属性:速度(speed),体积(size)
public class Vehicle {
private int speed;
private int size;
public Vehicle() {
}
public Vehicle(int speed, int size) {
this.speed = speed;
this.size = size;
}
//方法:移动(move()),加速speedUp(int speed),减速speedDown(int speed)等等。
public void move(){
System.out.println(speed);
}
public void speedUp(int speed){
this.speed += speed;
}
public void speedDown(int speed){
this.speed -= speed;
}
public int getSpeed() {
return speed;
}
public void setSpeed(int speed) {
this.speed = speed;
}
public int getSize() {
return size;
}
public void setSize(int size) {
this.size = size;
}
}
//Demo.java
package HomeWork;
import HomeWork.Vehicle;
import org.junit.Test;
public class Demo {
//最后在测试类Demo 中的main()中实例化一个交通对象,并通过构造方法给他初始化speed、size的值,并通过get方法打印出来。
// 另外,调用加速、减速的方法对速度进行改变(改变speed的值),改变后的速度值在main()方法中打印出来。
@Test
public void test2(){
Vehicle vehicle = new Vehicle(100,23);
vehicle.move();
vehicle.speedUp(10);
vehicle.move();
vehicle.speedDown(50);
vehicle.move();
}
}
2.编写Java程序,模拟简单的计算器。
定义名为Number的类,其中有两个整数型成员num1、num2,应声明为私有。
编写构造方法,赋予num1和num2初始值,再为该类定义加(add)、减(sub)、乘(multi)、除(div)等公共成员方法,分别对两个成员变量执行加减乘除的运算。
//Number.java
package HomeWork;
public class Number {
private int num1;
private int num2;
public Number() {
}
public Number(int num1, int num2) {
this.num1 = num1;
this.num2 = num2;
}
public int add(){
return num1 + num2;
}
public int sub(){
return num1 - num2;
}
public int multi(){
return num1 * num2;
}
public double div(){
return num1 * 1.0 / num2;//两个int相除怎么得到double类型
}
public int getNum1() {
return num1;
}
public void setNum1(int num1) {
this.num1 = num1;
}
public int getNum2() {
return num2;
}
public void setNum2(int num2) {
this.num2 = num2;
}
@Override
public String toString() {
return "Number{" +
"num1=" + num1 +
", num2=" + num2 +
'}';
}
}
//Demo.java
package HomeWork;
import org.junit.Test;
public class Demo {
@Test
public void test(){
Number number = new Number(10,4);
int addResult = number.add();
int subResult = number.sub();
int multiResult = number.multi();
double divResult = number.div();
System.out.println(addResult);
System.out.println(subResult);
System.out.println(multiResult);
System.out.println(divResult);
}
}