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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© lemon_tree 中级黑马   /  2014-7-26 23:43  /  737 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


1.面向对象的特点:继承、封装、多态
面向对象,将功能进行封装,强调具有功能的对象。
2.类与对象的关系:对象是类的实例化,是在堆内存中new出来的。
3.封装:隐藏对象的属性和实现细节,仅对外提供公共的访问方式。
4.构造函数
5.This关键字
6.Static关键字

匿名调用;
1)当对象的方法仅调用一次时,可以使用匿名对象来来完成。这样比较简化。
如果一个对象进行多个成员调用,必须给这个对象起一个名字。
(一个类调用另一个类中的成员时,先new一个。)
new Car().run()
2)可以将匿名对象作为实际参数进行传递
  show(new Car)
堆内存中的垃圾:只要没有引用指向这个对象,这个对象就是垃圾

封装
修饰符:private 私有化修饰符,只能被本类对象使用。
Public  被公有化的成员在所有类中都可以被访问。
Javabean:
class Student{
private  String  name;
private  int  age ;
char sex;
Public void setName(String name){
This.name = name;
}
Public void setAge(int age){
This.age = age;
}
Public String getName(){
Return name;
}
Public int getAge(){
Return age;
}
}



构造函数:对象被建立时运行一次,用于初始化
初始化代码块:是一对独立的大括号,用于初始化,优于构造函数执行。
This 关键字的用法(哪个对象调用this所在的函数,this就指向哪个对象。)
1)当局部变量与成员变量重名时,用this进行区分。
2)***在构造函数中,当构造函数重载时,一个构造函数调用另一个构造函数
This(name)this关键字加上参数,成员函数之间的调用可以直接调用。
3)**当定义一个功能时,对象还没有建立,这时用this代替,哪个对象调用this所在                的函数,this就指向哪个对象。
比较年龄的例子:
Public  Boolean Compare(Person p ){
This.age == p.age
}
This用法注意:
This语句只能用在构造函数的第一句。


Static 静态修饰符
修饰成员变量(被static的成员在方法区中)
被static修饰的变量的特点:
1)随着类的加载而加载
2)优先于对象而存在
3)被所有对象所共享
4)可以用类名直接调用
静态的初始化代码块:当第一次使用该类或访问成员变量时,执行一次
静态初始化代码块只能访问静态成员变量,调用静态成员方法。
主要用法:
1)定义一个Const类,存储全局变量,里面包含若干static修饰的成员变量,被所有对象所共享。为了防止数据被修改,再加上final修饰符。
2)做一个计数器count,存储对象的数量  在默认构造器中(count++)。
**可以定义一个默认构造器,然后让其余构造器调用默认构造器。

继承 extends
继承的特点:单继承和多层继承

类与类之间的关系
1)继承 是关系  一般关系
2)关联关系  有一个多个的关系
3)组合关系 一个类由多个其他类组成
4)依赖关系  一般在类中不持有另一个类的引用,但在某些方法中需要另外类型的引用,这个类依赖参数类。
继承类的实例化过程:
当实例化一个一个子类时,先在堆内存中建立子类对象空间,包含父类的对象空间和子类的特有内容。

Super关键字
1)调用正确的父类构造器 父类没有默认构造器。(相对于子父类来说的,this是一个类的构造器间的调用)
2)当子类与父类出现同名时,用super来进行区分
3)子类调用父类的成员 super.num


访问修饰符
private
默认
Protected
public

函数的覆盖
  子类中出现与父类一模一样的方法时,会出现覆盖操作,也称为重写或者复写。
  父类中的私有方法不可以被覆盖。
  在子类覆盖方法中,继续使用被覆盖的方法可以通过super.函数名获取。
  覆盖注意事项:
   覆盖时,子类方法权限一定要大于等于父类方法权限
   静态只能覆盖静态。
  覆盖的应用:
   当子类需要父类的功能,而功能主体子类有自己特有内容时,可以复写父类中的方法, 这                     样,即沿袭了父类的功能,又定义了子类特有的内容

Final 关键字
可以修饰类  成员函数 成员变量 变量
类 最终类,不可以被继承、
成员函数   最终函数,不能被覆盖
成员变量   拥有最终的值,只能被赋值一次
       非static变量:只能被赋值一次,在声明的地方或构造函数中

抽象类 abstract
  抽象就是从多个事物中将共性的,本质的内容抽取出来。
子类都需要重写父类的方法时,将这个方法定义为abstract
抽象类类不能被实例化,只能用来被继承

注意:一个类继承自一个抽象类时,必须要重写父类中所有的abstract方法,必须全部实现,如果不全部实现,那么这个类也必须是abstract类

抽象类包括   以实现的方法  和   抽象方法





接口 当一个类的方法全部是抽象方法时,这时可以把类定义为接口。
关键字interface
接口与类之间是实现关系。
接口的特点:
1)接口是对外暴露的规则
2)接口是程序功能的扩展
3)可以用来多实现
4)接口与类之间实现关系,在继承一个类的同时可以实现多个接口
5)接口与接口之间可以继承,接口可以多继承
接口中常量和方法的固定修饰符
常量:public stataic final int num = 3;
方法:public abstract void show();
固定的修饰符可以不写,系统会自动添加,所以在重写接口的方法时,前面一定要加上权限修饰符public。********************************

多态

代码体现:父类的引用指向了子类的对象空间。
优点:多态的出现大大提高了程序的扩展性。
缺点:只能使用父类的引用访问父类的成员。
多态的前提:
        1)类与类之间必须有关系 ,继承 实现。
2)还有一个前提就是必须存在方法的重写。
Animal  Cat Dog
Animal ani = new Cat();
Ani.run();
****访问子类特有的对象——>向下转型——>强制将父类的引用指向子类类型。
****Cat c = (Cat)ani
多态自始至终都是自己的子类对象在做着变化。

在向下转型时,必须判断是否指向正确的子类类型。
使用关键字 instanceof
If( ani instanceof Cat){
Cat c = (Cat)ani ;
c.eat();

}else if(ani  instanceof  Dog){
Dog d = (Dog)ani;
d. eat();
}
现在就可以在向下转型时,指向正确的子类类型。
ani 是——的实例。

在发生覆盖的情况下:
如果覆盖的是成员变量,访问父类的
如果覆盖的是成员函数,访问子类的。这和this的动态绑定有关,绑定到正在运行的对象上。




创建包:使用关键字package
       package com.itcast,tools 编译时类文件在这个包中
编译:javac -d . ArrayTools.java
运行:java com.itcast.tools.ArrayTools
导入包:import  com.itcast..tools.ArrayTools;

****一个包中的类要被访问,这个类必须定义为public,类公有后,方法也必须公有。
*****修饰类的两种权限修饰符
1)public  出包访问
2)默认   包内访问

2 个回复

倒序浏览
因为是使用wps写的,可能有些命令的首字母是大写的,小伙伴们自己改过来就行
回复 使用道具 举报
内容挺丰富,有值得学习的地方
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马