【JAVA学习笔记03】面向对象、数据类型默认值、toString、抽象、封装、继承、多态(部分)

类 对象

Java强类型语言
栈,先进后出

在这里插入图片描述

boolean类型默认值是:false
所有引用数据类型默认值为 null

在这里插入图片描述

增强的for 循环
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

使用同一个包下面的类不用导包。
java.lang下面的类不用导包
Setter:赋值 Getter:取值


Studenrt student = new student ();
默认调用构造方法

在这里插入图片描述

继承

父类 protected 子类可以继承

访问修饰符

在这里插入图片描述

this super

this:代表当前类的对象 this.id=id
super:代表父类对象
this():调用当前类的无参构造方法
super():调用父类无参构造方法

代码编写

package com.situ.day05.zuoye;

/**
 * 1、编写Java程序,模拟简单的计算器。
 * 定义名为Number的类,其中有两个整型数据成员num1和num2,应声明为私有。编写构造方法,赋予num1和num2初始值,再为该类定义加(add)、减(sub)、乘(multi)、除(div)等公有成员方法,分别对两个成员变量执行加、减、乘、除的运算。
 * 在main方法中创建Number类的对象,调用各个方法,并显示计算结果。
 */

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 getNum1() {
        return num1;
    }

    public void setNum1(int num1) {
        this.num1 = num1;
    }

    public int getNum2() {
        return num2;
    }

    public void setNum2(int num2) {
        this.num2 = num2;
    }

    public int add(){
        return num1 + num2;
    }

    public int sub(){
        return num1 - num2;
    }

    public int multi(){
        return num1 * num2;
    }
    public int div(){
        return num1 / num2;
    }
}

package com.situ.day05.zuoye;

public class Rectangle {
    /**
     * 2、定义长方形类,含:
     * 属性:宽、高(整型);
     * 方法:求周长、面积;
     * 构造方法3个:(1)无参——宽、高默认值为1;(2)1个参数——宽、高相等;(3)2个参数——宽、高各为参数值。
     * 要求:进行测试计算周长和面积。
     */

    int width;
    int heigth;

    public Rectangle() {
        this(1);调用当前类的其他构造方法 new Rantangle(int width)
    }

    public Rectangle(int width) {
        super();
        this.width = width;
        this.heigth = width;
    }

    public Rectangle(int width, int heigth) {
        super();//调取父类无参构造方法 new Object();
        this.width = width;
        this.heigth = heigth;
    }

    public int zhouchang(){
        return ( width + heigth ) * 2;
    }

    public int mianji(){
        return width * heigth ;
    }

    @Override
    public String toString() {
       //super代表父类对象
        return super.toString();
    }
}

重载 重写

重载

在同一个类里面,允许存在一个以上同名方法,只要他们参数类型参数个数不同即可。
构造方法重载(无参构造方法、有参构造方法)
方法重载特点:与返回值无关,只看参数列表。

重写

1、子类覆盖父类,必须保证子类权限大于父类权限才可以覆盖,否则会编译失败。
2、如果父类是private的方法,子类是默认方法,那么子类是不知道这个方法的,不是覆盖。

代码编写

/**

  • 1、编写Java程序,模拟简单的计算器。
  • 定义名为Number的类,其中有两个整型数据成员num1和num2,应声明为私有。编写构造方法,赋予num1和num2初始值,再为该类定义加(add)、减(sub)、乘(multi)、除(div)等公有成员方法,分别对两个成员变量执行加、减、乘、除的运算。
  • 在main方法中创建Number类的对象,调用各个方法,并显示计算结果。
    */
package com.situ.day05.cal;



public class Add  extends Cal{

    public Add() {
    }

    public  Add(int num1, int num2) {
        super(num1, num2);

    }

    @Override
    public int getResult() {
        return num1 + num2;
    }
}

package com.situ.day05.cal;

public class Cal {
    protected int num1;
    protected int num2;

    public Cal() {
    }

    public Cal(int num1, int num2) {
        this.num1 = num1;
        this.num2 = num2;
    }

    public int getResult(){
        return 0;
    }

    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;
    }
}

package com.situ.day05.cal;

import org.junit.Test;

public class CalDemo {

    @Test
    public void teast1(){
        Add add = new Add();
        add.setNum1(3);
        add.setNum2(6);
        System.out.println(add.getResult());

        Add add1 = new Add ( 2,4 );
        System.out.println(add1.getResult());



    }

}

package com.situ.day05.cal;

public class Div extends Cal{

    public Div() {
    }

    public Div(int num1, int num2) {
        super(num1, num2);
    }

    @Override
    public int getResult() {
        return num1 / num2 ;
    }
}

package com.situ.day05.cal;

public class Multi extends Cal{

    public Multi() {
    }

    public Multi(int num1, int num2) {
        super(num1, num2);
    }

    @Override
    public int getResult() {
        return num1 * num2;
    }
}

package com.situ.day05.cal;

public class Sub extends Cal{

    public Sub() {
    }

    public Sub(int num1, int num2) {
        super(num1, num2);
    }

    @Override
    public int getResult() {
        return num1 - num2;

    }
}

多态

对修改封闭,对扩展开放(开闭原则)
面向对象思想

Git

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值