您的位置:首页 > 编程语言 > Java开发

java课堂笔记8

2012-11-07 14:24 197 查看
四、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) {}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: