类 对象
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;
}
}
多态
对修改封闭,对扩展开放(开闭原则)
面向对象思想