A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© dyxdyx 中级黑马   /  2015-8-29 22:40  /  463 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

面向对象(一种思想)
面向对象:将复杂东西简单化,让程序员有执行者变为指挥者 ---强调对象
面向过程:以函数为基础完成各种操作 ---强调过程

类:对事物的描述(属性和行为,行为指方法)
对象:根据类而产生的一个实体      null是常量
一个类没有任何类继承那么这个类继承自object类(不含接口)
控制对类成员的访问 public protected private


成员变量:定义在类中,方法外的变量  (就是类的属性)  有默认初始值(也叫实例变量)
局部变量:定义在方法中,或者方法的形式参数。          没有默认初始值(在方法创建时执行)
(使用时现在局部找,再在成员找,就近原则)       
成员方法:就是函数(没有static)
匿名对象:没有名字对象(当一个对象只需要调用一次时可以考虑使用,可作实参传递)

构造方法:方法名和类名一样,没有返回值类型,不给系统默认无参构造。
构造方法第一行默认supr();(自己也可以给其他的)  
用来对象或初始化成员数据

继承 关键字:extends  (类与类 单继承,多重继承;接口与接口 多继承,多重继承)
继承是一个子类继承了一个父类的属性的方法(不包括被private修饰的和构造方法)
提高代码复用性
子父类方法重写:子父类方法相同情况,子类访问权限大于等于父类,静态方法只能被静态方法重写。  

封装:将类中的属性方法用private修饰,仅对外提供公共的访问方式。(包括函数也是封装的一种体现) 隐藏属性和实现细节
提高安全性
用private修饰变量 用set get方法为变量赋值和获得变量

多态:一种事物的多种表现形式(人:男人,女人  动物:猫,狗猪....)  
父类名 类名 = new 子类名()  ;(前提:父类引用指向子类对象, 相当于向上转型) 需要时可以向下转型(相当于强转)
好处:提高代码复用性,可维护性   弊端:父类不能拥有子类特有功能
多态中 成员变量:编译看左边,运行看左边
成员方法:编译看左边,运行看右边

抽象类:含有抽象(abstract)方法的类(也可能没有抽象方法),不能被直接实现。
abstrat class 类名 {}         
abstract 不能和finnal  private  static(静态可通过类名直接调用,因为是在抽象方法中没有方法体,调用没有意义)共存

抽象方法:没有方法体的方法,在抽象类和接口中。
eg: public void speak();

接口:接口中的方法全是抽象的,默认被public abstract 修饰;变量默认被public satic finnal修饰(常量)。 接口可以被继承和实现(implement)  使用接口其实相当于对功能的扩展
* 接口中没有构造方法 所有接口默认具备object类中的抽象形式。


内部类:成员内部类:定义在类中的类
外部类名.内部类名 变量 = new 外部类名().new 内部类名()
被static修饰时 外部类名.内部类名 变量名 = new 外部类名.内部类名();
(局部内部类访问局部变量时,变量要被static修饰)
局部内部类:定义在方法里面的类(只能在局部使用)

匿名内部类:没有名字的类(没有引用指向)  (是一个继承了类或实现了接口的子类对象)
                格式  new 类名或接口名()
     {
重写类或接口中的方法
自己定义新方法
             }

代码块:
局部代码块:控制变量生命周期
构造代码块 :初始化对象
静态代码块:给类初始化


包:相当于文件夹
package 包名;
import 包名1.包名2.类名;(可以多级)

编译 javac -d . 包名.类名
运行 java 包名.类名

static 静态
修饰  成员变量、成员方法:被所有实例共享,可以通过类名.方法名来访问。Java虚拟机只为静态分配一次内存。静态方法中不能使用super this关键字,不能访问所属类的实例方法和实例变量(没被static修饰的变量和方法)
      静态代码块:随类的加载而加载,只加载一次

被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象。

this:代表当前类的意思,引用本类的属性  在构造方法中还可以用this调用其他构造方法(位于第一行)

super:子类构造函数第一行默认super()  若是父类没有无参构造会报错,引用父类的变量

   
super()从子类中调用父类的构造方法,this()在同一类内调用其它方法。
super()和this()均需放在构造方法内第一行。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马