Java--面向对象

本文通过创建Student、Vehicle和Number类展示了面向对象编程的基本概念和应用。Student类包含id、name和age属性,具备getter和setter方法。Vehicle类具有speed和size属性,实现了移动、加速和减速的功能。Number类则提供了加减乘除操作,用于简单的计算器模拟。文章还强调了构造方法的作用和使用注意事项,并给出了测试代码进行实例演示。

目录

一、了解面向对象,简单用Student类写一个例子,并测试运行

二、面向对象的知识点

三、练习

1.请定义一个交通工具(Vehicle)的类,

属性:速度(speed),体积(size)

方法:移动(move()),加速speedUp(int speed),减速speedDown(int speed)等等。

最后在测试类Demo 中的main()中实例化一个交通对象,并通过构造方法给他初始化speed、size的值,并通过get方法打印出来。另外,调用加速、减速的方法对速度进行改变(改变speed的值),改变后的速度值在main()方法中打印出来。

 2.编写Java程序,模拟简单的计算器。

定义名为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 +
                '}';
    }
}

 

二、面向对象的知识点

  1. 建议一个类里写属性,一个类里写方法,不然容易乱。
  2. this.id = id;this 代表当前对象,把通过构造方法传递过来的值赋值给当前对象。
  3. 当new一个对象的时候,调用构造方法。如果你不写任何构造方法,Java会默认提供一个无参构造方法,只是我们看不到而已。如果自己写了任何一个构造方法,系统都不会提供这个默认的构造方法了。所以说!如果你自己写了一个有参构造方法,一定也要生成一下无参的构造方法。无参构造方法的特点是①方法名和类名一样 ②没有返回值 比如
    public Student() {
            System.out.println("调用无参构造方法");
        }

    如果你加一个void,就是普通方法了,不是构造方法,跟下面setAge等没什么区别了。

  4. 构造方法和一般方法的不同:①构造方法是在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);

     }


}

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值