• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
Expect
博客园    首页    新随笔    联系   管理    订阅  订阅
Java学习笔记之理论

比较运算
   字符可以比较大小(用它们的 ascii 码,化为整数)
   小心浮点数的相等比较
   instanceof 也是一个比较运算,用来判断一个对象是否属于某个类
   ==运算中,对于基本类型比较的是 "内容",而对于引用类型,比较的是地址


基本数据类型
   整数型:byte、short、int、long
   浮点型:float、double
   字符型:char
   逻辑性:boolean

   浮点型的值,如果没有特别指明,默认是 double 型的。
   整数型的值,默认 int 型的。

 

多态:同一行为的多种不同表达,或者同一行为的多种不同实现就叫多态。

 

包:从逻辑上讲,包是一组相关类的集合,从物理上讲,同包即同目录。

 

类成员的访问控制


 

构造方法
   类有一个特殊的成员方法叫做构造方法,它的作用是创建对象并初始化成员变量。
   在创建对象时,会自动调用类的构造方法。
   构造方法必须与该类具有相同的名字,并且没有方法的返回类型。
   构造方法一般都应用 public 类型来说明,这样才能在程序任意的位置创建类的实例--对象。
   每个类至少有一个构造方法,如果不写一个构造方法,Java 编程语言将提供一个默认的,该方法没有参数,而且方法体为空。
   如果一个类中已经定义了构造方法,则系统不再提供默认的构造方法。

 

析构方法 
   析构方法 finalize 的功能是:当对象被从内存中删除时,该成员方法将会被自动调用。
   当调用析构方法的时候,并不会引起该对象实例从内存中删除,而是不会起到任何作用。

 

形参: 就是形式参数的意思。是在定义方法名的时候使用的参数,用来表示方法接收的参数类型,在调用该方法时传入。
实参: 就是实际参数的意思。是在调用方法时传递给该方法的实际参数。

形参和实参基本规则:
   1、形参和实参的类型必须要一致,或者要符合隐含转换规则。
   2、形参类型不是引用类型时,在调用该方法时,是按值传递的。在该方法运行时,形参和实参是不同的变量,它们在内存中位不同的位置,形参将实参的值复制一份,在该方法运行结束的时候形参被释放,而实参内容不会改变。
   3、形参类型是引用类型时,在调用该方法时,是按引用传递的,运行时,传给方法的是实参的地址,在方法体内部使用的也是实参的地址,即使用的就是实参本身对应的内存空间,所以在函数体内部可以改变实参的值。

  

 按值传递:传递的是值的拷贝,也就是说传递后就互不相关了。
按引用传递:传递的是值的引用,也就是说传递前和传递后都指向同一个应用(也就是同一块内存空间)。

   注意:
   按值传递是传递的值的拷贝,按引用传递其实传递的是引用的地址值,所以统称按值传递。
   在 Java 中 只有基本类型和引用类型。
   String str = "test";  -------值传递。

强制类型转换
  把某种类型强制转换成另外一种类型就叫做强制类型转换。
    注意:强制类型转换只能用在原本就是某个类型,但是被表示成了另外一种类型的时候,可以把它强制转换回来。
            强制类型转换并不能在任意的类型间进行转换。

自动包装和解包
   自动包装:就是把基础数据类型自动封装并转换成对应的包装类的对象。
   自动解包:就是把包装类的对象自动解包并转换成对应的基础数据类型。

继承
   初始化子类必须先初始化父类。
   构造方法不能被继承。

关键字 super
   关键字 super 可被用来引用该类的父类,它被用来引用父类的成员变量或方法。
   1、点取父类中被子类隐藏了的数据成员。
   2、点取已经覆盖了的方法。
   3、作为方法名表示父类构造方法。
   无论是 super 还是 this ,都必须放到构造方法第一行。

 

方法覆盖
   在类继承中,子类可以修改从父类继承来的行为,也就是说子类能创建一个与父类方法有不同功能的方法,但具有相同的:名称、返回类型、参数列表。
   如:父类 A test()方法,子类B test()方法。  A ab = new B();   ab.test();  //调用的是子类的 test 方法 
   注意:new 谁就调用谁的方法。
方法覆盖规则
   1、覆盖方法的返回类型、方法名称、参数列表必须与它所覆盖的方法相同。
   2、覆盖方法不能比它所覆盖的方法访问性差(即访问权限不允许缩小)。
   3、覆盖方法不能比它所覆盖的方法抛出更多的异常。

 

方法重载
   在同一个类中(包含父类),如果出现了方法名称相同,而参数列表不同的情况就叫重载。
   参数列表不同情况包括:个数不同、类型不同、顺序不同等。
   注意:仅仅参数变了名称不同是不可以的。
   注意:跟成员方法一样,构造方法也可以重载。
方法重载规则
   1、方法名称必须相同。
   2、参数列表不同。(个数不同、或类型不同、或参数排列顺序不同)。
   3、方法的返回类型可以相同也可以不相同,仅仅返回类型不同不足以成为方法的重载。

 

多态
   注意:方法没有多态的说法,严格说多态是类的特性。但也有对方法说多态的,方法覆盖称为动态多态,是一个运行时问题,方法重载称为静态多态,是一个编译时的问题。
   父类的类型引用变量指向一个子类的对象。 A父类 B子类    A  ab = new B();    ab.某方法(),调用的是 B 子类的方法。

 

instanceof 运算符
   判断某个实例是否属于某个类的类型。一旦确定了变量所引用的对象类型后,可以将对象恢复给对应的子类变量,以获取对象的完整功能。

 

static 的变量是在类装载的时候就会被初始化。

 

final修饰符
   1、final 标记的类不能被继承
   2、final 标记的方法不能被子类重写
   3、final 标记的变量(成员变量或局部变量)即为常量,只能赋值一次。
   4、final 标记的成员变量必须在声明的同时赋值,如果在声明的时候没有赋值,那么只有一次赋值的机会,而且只能在构造方法中显示赋值,然后才能使用。
   5、final 标记的局部变量可以只声明不赋值,然后再进行一次性的赋值。
   6、final 一般用于标记那些通用性的功能、实现方式或取值不能随意被改变的成分,以避免被误用。

 

数组
   数组是引用类型。
   数组一旦被创建,就不能更改数组的长度。

 

equals 方法
   == 进行比较的时候,引用类型数据比较的是引用,即内存地址,基本数据类型比较的是值。
   equals 方法只能比较引用类型, == 可以比较引用类型和基本类型。
   注意:当 equals 方法进行比较时,对类 File、String、Date 及包装类来说,是比较类型及内容而不考虑引用的是否是同一个实例。 

 


接口
   接口中声明的默认属性都是 public static final
   接口中的所有方法都是 public

 

异常
   重写方法需要抛出与原方法所抛出的异常类型一致,或不抛出异常。

posted on 2011-01-17 14:47  Expect  阅读(672)  评论(1)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3