⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 day04.txt

📁 达内科技上课的 java学习笔记 分为18天学完
💻 TXT
字号:
			     CoreJava(day04) 2007-12-6   --- 李艳

作业讲解:(课堂代码:MyDate.java)

从今天开始学习java高级特性
	
1、static(静态):

	静态的属性都存储在池里面。在类加载的时候存入。

	static可以修饰属性,方法,内部类,语句块
	
	静态属性:(课堂代码:TestCount.java)
		例:public class TestCount {
			private int count1=0;
			private static int count2=0; //类变量
		   }
		   TestCount t1=new TestCount();
		   t1.count1;   //普通属性的调用方式
		   TestCount.count2; 静态属性的使用方法是用用类名调用,也可以用对象来调用,但建议用类名调用
	
	静态方法中不能使用非静态的属性。静态方法里不能使用this,是因为静态方法里根本没有this.
		例:public static void test1(){
			//count1不可用,count2可以用
		    }

		静态方法不能被非静态的方法覆盖。
		静态方法可以被子类的静态方法覆盖,但覆盖以后就没有多态了。

	静态语句块:(课堂代码:TestStatic.java,TestTestStatic.java) 
		static{  //类加载的时候调用
			System.out.println("static is called");
		}	
		{ //构造对象的时候调用
			System.out.println("is called");
		}

		static语句块>语句块

		静态初始化代码块在类加载的时候运行,所以只执行一次。声明引用时不会进行类加载。
		静态初始化代码块和静态方法一样也不能访问非静态成员。
	
	什么情况下算类加载:类在创建一个实例,或用类名. 调用属性或方法的时候会类加载,即需要运行的时候才会类加载
	
	加载子类会先加载父类,语句块的调用也是先父后子。(课堂代码:Person.java)(课堂代码:Student.java)(课堂代码:Test.java)
	
	先加载父类再加载子类,然后再构造(构造也是先父后子),既先加载后构造

	静态的好处就是可以用类名.方式去调用
	
	单例设计模式:(课堂代码:Singleton.java)

		保证实例唯一,节省内存,构造方法私有 static+private+public

		对象不会改变

		
2、final: (课堂代码:TestFinal.java)

	final可以修饰变量、方法、类。
	
	final变量(实例变量(属性),局部变量):
		
		final等于是把栈给锁定了

		final修饰的变量,一旦赋值,不能改变,表示属性的值是不可变的

		对于实例变量是一个final的,要么在初始化属性时赋值,要么在构造方法中赋值,只能一次且还不能不赋值,即必须在构造对象后有值

		若是用final static修饰的常量,必须在类加载后有值,即在声明时赋值或者在静态初始化代码块中赋值,尽量在声明时赋值。习惯上常量用大写。
						
	final方法:表示这个方法是最终的方法,不能在子类中去覆盖这个方法
	
	final类:表示这个类不能被继承,不能有子类,是断子绝孙类。

3、访问权限:


	     			访问范围	                子类是否能继承                  | 严
	                                                            			    	|
		private     	本类内部访问              	不能继承                    	|
                                                                    			    	|
	   不写(default)   	本类+同包               	不一定,要看子类和父类是否同包  |
                                                                    				|
		protected   	本类+同包+不同包子类       	子类能继承                   	|
                                                                    				|
		public       	公开                      	能继承                       	| 宽


		public,final,不写(default),可以修饰类
		public,private,protected,不写(default),static,final 可以修饰属性,一般会用private,static,final
		public,private,protected,不写(default),static,final 可以修饰方法。
		public,private,protected,不写(default),可以修饰构造器 

4、Object类:  

	全称:java.lang.Object

	equals:(课堂代码:Student1.java,TestStudent.java)

	public boolean equals(Object obj): 判断两个对象内容是否“相等”。

		==(双等号):判断的是地址,Object里的equals方法和==判断的是一样的,所以要想比较自己写的类的内容是否相同,就要重写equals方法
		.equals  :判断的是内容
	
	重写equals方法时:
		1、判断是否为null   if(obj==null) return false;
		2、判断类型是否兼容    if(obj instanceof 类)
		3、强制类型转换: 判断每一个不可能会重复的属性:简单类型用==,对象类型用.equals,若每一个属性内容都相等就可以返回true.
		
		
	继承:代码复用,代码维护
	多态可以使参数传递灵活、简洁,定标准
	多态+重写可以帮助父子类之间的传递更方便、更灵活。
	重载:便于用户使用
	
	
	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -