java课堂笔记8

来源:互联网 发布:单位矩阵 编辑:程序博客网 时间:2024/04/29 22:54
四、static关键字 被static修饰的成员变量和成员方法表明归某个类所有,它不依赖于特定的实例 它被所有的对象共享,只要这个类被加载,java虚拟机就能够根据类名在池中找到它 它属于常驻内存,垃圾回收机制管不了他 1.静态的属性      被所有该类的对象共享,支持类名.属性名调用,在内存中只有一个拷贝,运行时java   虚拟机      只为静态的变量分配一次内存,在类加载(使用类之前)的时候完成它的内存分配      static的属性都是放在池中的。 2.静态的语句块      在类的加载的时候(即用java命令的时候)执行,先执行父类的后执行子类的。一个 类只加载一次,      静态语句块只执行一次      非静态的语句块是实例相关的。每构造一个对象之前都会调用一次 3.静态的方法     静态的方法里不能使用非静态的属性,static的方法可以被重写,但是必须也是static的方法,但是叫隐藏更合适一些。因为静态方法重写后没有多态的效果,它会根据编译时类型去调用相应类里的方法 Day07   Day07   Day07   Day07       一、继承,super,重写,多态,类型转换 private的方法是不能被继承的,属性是能继承的,但是是不能用的 日期作业: package com.tarena.day05; public class MyDate {   private int year;   private int month;   private int day;   public MyDate(){ //   year = 2008; //   month = 9; //   day = 26;   }   public MyDate(int year, int month, int day){     this.setYear(year);     this.setMonth(month);     this.setDay(day);   }      public int getDay() {    return day;   }   public void setDay(int day){    if(year == 0 || month == 0){     System.out.println("err");     return;   //return可以让一个返回void的方法终止    }    int maxDay = 31;    if(month==4 ||month==6 ||month==9 ||month==11){     maxDay = 30;    }else if(month==2){     if(year%4==0 && year%100!=0 || year%400==0){      maxDay = 29;     }else{      maxDay = 28;     }    }    if(day<1 || day>maxDay){     System.out.println("Day error!");    }else{     this.day = day;    }   }   public int getMonth(){    return month;   }   public void setMonth(int month){    if(month<1 || month>12){     System.out.println("month error!");    }else{ this.month = month;    }   }   public int getYear(){    return year;   }   public void setYear(int year) {    if(year<0){     System.out.println("year error!");    }else{     this.year = year;    }   }  public static void main(String[] args) {}
原创粉丝点击