不想学习的小狐狸

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

## 面向对象

一个类即使什么都不写,它也会存在一个方法显示地定义构造器

使用new关键字,本质上是在调用构造器

一旦定义了有参构造,无参就必须显示定义

super注意点:

1、super是调用父类构造方法,必须在构造方法的第一个

2、super必须只能出现在子类的方法或者构造方法中

3、super和this不能同时调用构造方法

和this比较:

代表的对象不同:

​    this:本身调用者这个对象

   super:代表父类对象的应用

前提:

   this:没有继承也可以使用

   super:只能在继承条件才可以使用

构造方法:

​    this():本类的构造方法

   super():父类的构造



重写:需要有继承关系,子类重写父类

   1、方法吗必须相同

   2、参数列表必须相同

   3、修饰符范围可以扩大,但是不能缩小

   4、抛出的异常范围可以被缩小,但不能扩大

重写,子类的方法和父类必须要一致,但方法体不同

为什么要重写:

1、父类的功能,子类不一定需要,或者不一定满足



多态:

1、多态是方法的多态,属性没有多态

2、存在条件:继承关系,子类重写父类方法, 父类引用指向子类对象 Father f1=new son();

​    

转换:

1、父类引用指向子类的对象

2、把子类转换为父类,向上转型,可能会丢失子类的方法

3、把父类转换为子类,向下转型,要强制转换

4、好处就是方便方法的调用,减少重复代码



抽象类的所有方法,其子类必须要实现

抽象类中可以写普通的方法

抽象方法必须在抽象类中

抽象方法:只有方法名字,没有方法的实现



普通类:只有具体实现

抽象类:具体实现和规范(抽象方法)都有

接口:只有规范,自己无法写方法



ctrl+Alt+t 捕获异常

//自定义的异常
public class exception extends Exception{
    
}

常用类

包装类

基本数据类型--》引用数据类型--》继承关系

byte ->Byte 先继承自Number再继承自Object

short ->Short 先继承自Number再继承自Object

int-> Integer 先继承自Number再继承自Object

long->Long 先继承自Number再继承自Object

float->Float 先继承自Number再继承自Object

double->Double 先继承自Number再继承自Object

char->Character 继承自 Object

boolean->Boolean 继承自Object

时间处理类

import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Scanner;

public class Demo01 {
    public static void main(String[] args) {
        System.out.println("输入你想要查看的日期:---格式例如:2021-5-12");
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        //String->Calendar
        Date valueOf = java.sql.Date.valueOf(str);
        Calendar  cal = new GregorianCalendar();
        cal.setTime(valueOf);
//        System.out.println(cal);
        System.out.println("日\t一\t二\t三\t四\t五\t六\t");
        //引入一个计数的变量
        int count =0;
        //求出这个月中的最大天数
        int maxDay = cal.getActualMaximum(Calendar.DATE);
        //获取现在是哪天
        int nowDay = cal.get(Calendar.DATE);
        //将当前日期变成本月的第一天
        cal.set(Calendar.DATE,1);
        //获取这个第一天是一周中的第几天
        int num =cal.get(Calendar.DAY_OF_WEEK);
        //\t的个数:num-1
        for (int i = 1; i < num - 1; i++) {
            System.out.print("\t");
        }
        count+=(num-1);
        for (int i = 1; i < maxDay; i++) {
            if(i!=nowDay){
                System.out.print(i+"\t");
            }else{
                System.out.print(i+"*\t");
            }
            count++;
            if(count%7==0){
                System.out.println( );
            }
        }
    }
}

结果

 

posted on 2021-05-15 11:06  一只小狐狸kis  阅读(70)  评论(0)    收藏  举报