电子书观后感(未完待续)

Java面向对象的三大特征:
        封装,继承,多态。
1. 类和对象: 
       定义类语法:
	       [修饰符] class 类名
		   {
		       零到多个构造器定义
			   零到多个属性
			   零到多个方法
		   }
		 属性用于定义该类或类的实例所包含的数据,方法则用于定义该类或该类的实例的行为特征或功能实现。
	构造器用于构造该类的实例。Java语言通过new关键字来调用构造器,从而返回累的实例。
        定义属性语法:
	        [修饰符] 属性类型 属性名 [=默认值]
                :修饰符:可以省略,也可以是public protected,private,static,final其中public protected,private三个最多只能出现其一,可以与static,final组合起来修饰属性
            	: 属性类型: 属性类型可以是Java语言允许的任何数据类型。
                :属性名:  合法标识符即可
                : 默认值: 定义属性还可以定义一个可选的默认值。
        定义方法语法:
             [修饰符] 方法返回值类型 方法名 (形参列表)
			 {
			     //由零条到多条可执行语句组成的方法体
			 }
			 
	static :  是一个特殊关键字,它可用于秀时方法,属性等成员,static修饰的成员表明它是属于这个类共有的,而不是属于该类的单个实例,因为通常把static修饰的属性和方法特称为类属性,类方法
	         不使用static修饰的普通方法,属性则属于的那个实例,而不属于该类,应为通常把不使用static修饰的属性和方法也称为实例属性,实例方法。
		定义构造器语法:
		     [修饰符] 构造器名 (形参列表)
			 {
			      //由零条到多条可执行语句组成的构造器执行体
			 }
			 修饰符: 可以省略,也可以是public,prorected,private之一。
			 构造器名: 构造器名必须与类名相同
			 形参列表: 和定义方法形参列表的格式完全相同
		     构造器不能定义返回值类型声明,也不能使用void定义构造器没有返回值,如果为构造器定义了返回值类型,或使用void定义构造器没有返回值类型,编译时不会出错,但Java会把这个所谓的构造器当成方法处理。
2. 对象引用和指针:
  		 栈内存里的引用变量并未真正的存储对象里的属性数据,对象的属性数据实际存放在堆内存里,而引用类型变量。
		 如果希望通过垃圾回收机制回收某个对象,只需切断该对象的所有引用变量和它之间的关系即可,也就是把这些引用变量赋值为null即可。
	对象的this引用:
             1)  是一个对象的默认引用,this关键字指向调用该方法的对象,根据this出现位置的不同,this作为对象的默认引用的两种形式:
                    构造器中引用该构造器执行初始化的对象
					在方法中引用调用该方法的对象
		     
                    					 
			 2)  this可以代表任何对象,当this出现在某个方法体中时,它所代表的对象是不确定的,但他的类型是可以确定的,它所代表的对象只能是当前类,只有这个方法被调用时,他所代表的对象才可以被确定下来,谁在调用这个方法,this就代表谁。
			 3)  大部分时候,普通方法访问其他方法,属性时无需使用this前缀,但如果方法里有个局部变量和属性同名,但程序又需要在该方法里访问这个被覆盖的属性,则必须使用this前缀。
			 4)  this引用也可用于构造器中作为默认引用,由于构造器是直接使用new关键字来调用,而不是使用对象来调用,所以this关键字在构造器进行初始化的对象。
			 5)  当this作为对象的默认引用使用时,程序可以象访问普通引用变量一样来访问这个this引用,甚至可以把this关键字当成普通方法的返回值。
3.  方法的所属性;
         Java语言里的方法的所属性:
		           方法不能独立定义,方法只能在类体里定义
				   从逻辑意义上来看,方法要么属于一个类,要么属于一个对象
				   永远不能独立执行方法,执行方法必须使用类或对象作为调用者。
4.   递归方法:
             一个方法体内调用它自身,被称方法的递归。方法递归包含了一种隐式的循环,它会重复执行某段代码,但这种重复执行无需循环控制。
         示例:
            public class Recursive
			{
			    public static int fn(int n)
				{
				    if(n==0)
					{
					    return i;
					}
					else if (n==1)
					{
					    return 4;
					}
					else
					{
					    //方法中调用它自身,就是方法递归
						return 2* fn(n-1)+fn(n-2);
					}
				}
				public static void main(String [] args)
				{
				     //输出fn(10)的结果
					 System.out.print(fn(10));
				}
			}
5. 方法重载:
         Java允许同一个类里定义多个同名方法,只要形参列表不同即可。如果同一个类中包含了两个或两个以上的方法的方法名相同,但形参列表不同,则被称为方法重载。
		 三要素:
		          调用者:也就是方法的所属者,既可以是类,也可以是对象。
				  方法名: 方法的标识。
				  形参列表: 当调用方法时,系统将会根据传入的实参列表匹配。
			 
6. 局部变量和成员变量
            	局部变量根据定义形式不同,分为以下三种:
				     形参:在定义方法签名时,形参的作用域是在整个方法内有效。
					 方法局部变量: 在方法体内定义的局部变量,他的作用从方法该变量的地方生效,到该方法结束时实效,
					 代码块局部变量:  在代码块中定义的局部变量,这个局部变量的作用域是从定义该变量的地方生效,到代码块家属时失效。
            			
			 在同一个类里,成员变量的作用范围是整个类有效,一个类里不能定义两个同名的成员变量,即使一个是类属性,一个是实例属性也不行,一个方法里不能定义两个同名的局部变量,
		即使一个是方法局部变量,一个是代码块局部变量或者形参也不行。
			 
7. 封装:
        封装实现目的: 
                隐藏类的实现细节				 
				让使用者只能通过事先预定的方法来访问数据,从而可以在该方法里加入逻辑控制,限制对属性的不合理访问
				可进行数据检查,从而有利于保证对象信息的完整性。
				便于修改,提高代码的可维护性
		private   default  protected   public(访问级别从小到大)
8.   使用import语句导入单个类: import package.subpackage...ClassName;
     使用import语句导入指定包下全部类:  import package.subpackage...*;
	 使用import static语句导入指定类单个静态属性:  import static package.subpackag...ClassName.filedName;
	 导入指定全部静态属性: import static package.subpackag...ClassName.*;(*只能代表属性名)
   			 
9. Java的常用包:
            java.lang:包含Java语言的核心类,如String,Math,System,Thread等,无需导入import语句。
			java.util:包含Java大量工具类/接口和集合框架类/接口,例如Array,List,Set
			java.net: 包含一些Java网络编程相关的类/接口
			java.io: 包含Java输入输出编程相关的类/接口
			java.text: 包含Java何世华相关的类
			java.sql: 包含Java进行JDBC数据库编程相关类/接口
			java.awt: 包含抽象窗口工具集,的相关类/接口,主要用于构件图形用户界面程序
			java.swing: 包含Swing图形用户界面程序的相关类/接口,用于构建平台无关的GUI程序.
10. 深入构造器: 
            构造器是一个特殊的方法,用于创建类的实例。Java类必须包含一个或者一个以上的构造器。
        最大的用处就是在创建对象时执行初始化。			
			 
	构造器的重载:
            同一个类里具有多个构造器,多个构造器的形参列表不同,即被称为构造器重载。要求构造器名字相同。	
			 
11. 继承的特点:
            通过extends 实现。
             语法: 
                [修饰符] class SubClass extends SuperClass
				{
				    //类定义部分
				}
12. 方法重写:
            子类包括与父类同名方法的现象被称为方法重写。也被称为方法覆盖。子类重写父类或者父类覆盖子类。			 
13. 子类构造器调用父类构造器分为:
             子类构造器执行体的第一行使用super显示调用父类构造器,子类构造器总会调用父类的构造的实参列表调用父类对应的构造器。
			子类构造器执行体的第一行代码使用this显示调用本类中重载的构造器,系统将根据this调用里传入的实参列表调用本类另一个构造器,执行本类中另一个构造器时即会调用父类的构造器。
			子类的构造器执行体中既没有super调用,也没有this调用,系统将会执行子类构造器之前,隐式调用父类无参数的构造器。
			 
14. 多态性: Java引用变量有两个类型:编译时的类型,运行时的类型。
             编译时的类型由声明该变量时使用的类型决定,运行时的类型由实际赋给变量的对象决定,如果编译时类型和运行时类型不一致,就会出现所谓的多态。			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值