黑马程序员技术交流社区
标题:
把面向对象总结了一下,放在这里存着,留着以后偷偷的...
[打印本页]
作者:
黑马-胡明
时间:
2014-8-19 19:37
标题:
把面向对象总结了一下,放在这里存着,留着以后偷偷的...
本帖最后由 黑马-胡明 于 2014-8-19 19:39 编辑
基础篇----面向对象:
1:面向对象之函数:
定义:函数就是定义在类中的具有特定功能的一个小程序,又叫做方法。
特点:a。可以对功能代码进行封装;b。便于对该功能的复用;c.提高了代码的复用性;d。只有被调用时才能执行;e。当函数没有返回值时,就不能使用return;
格式:修饰符 返回值类型 函数名(参数列表1,参数列表2···){}
1.1 构造函数:
特点:与类名相同,不用定义返回值类型,不可以使用return;
作用:对象一建立就会调用与之对应的函数,给对象进行初始化。
带参构造函数new的对象里要对参数赋值。
1.2 构造代码块:
格式:{ 执行代码 }
作用:构造代码块是给所以对象进行统一初始化。对象一建立就开始运行,而且优先于构造函数执行。
构造函数与构造代码块之间的区别:构造函数是给对应的对象初始化,构造代码块是给所以的对象初始化。
1.3 this的作用:用于区分局部变量和成员变量同名的情况。this代表它所在函数中所属对象的引用。
1.4 static
作用:用于修饰静态成员(成员属性和成员方法)。
用法:当对象中出现了共享数据时,可以将该成员定义成静态。然后再根据对象的需要进行调用。即优化代码又提高复用性。
1.5 静态代码块
格式:static
{
静态代码块执行的语句。
}
作用:随着类的加载而执行,只执行一次。是给类初始化的。
2:面向对象之对象
初始化:类名 对象名=new 类名();
对象调用成员:对象名。属性(赋值);
对象名。方法名();
3.面向对象的三大特征:
3.1 封装:是指影藏对象的属性和实现细节,仅对外提供公共访问方式。
3.12 好处:a。将变化隔离;b。提高安全性;c。提高重用性;d。便于使用;
3.13 原则:将不需要对外提供的内容都影藏起来;把属性都隐藏,提高公共方法对其访问。
3.14 修饰符:private 只有在本内中有效。
封装代码实现:private int age;
public void setAge(int age)
{
this.age=age;
}
public int getAge()
{
return age;
}
3。2 继承: 类A拥有类B和类C中的属性和方法,即类B和类C属性方法的交集。用面向对象的思想就是类A中的成员是从类B类C中抽取的。
3.21 好处:a。提高了代码的复用性;b。让类与类之间产生了关系,有了这个关系才有了多态的特性。
3.22 注意:只有单继承,不可以多继承。
3.23 构造函数:
变量:如果子类中出现了非私有的同名变量时,子类要访问本类中的成员变量时用this。
如果子类要访问父类中的成员变量时就用super;this表示本类对象的引用,super表示父类中的对象引用。
3.24 子父类中的函数之(重写)覆盖:当子父类都具有某个功能,但是功能的内容不同时,那么子类可以覆盖父类的功能然后重写自己特有的功能内容。
注意:a。子类覆盖父类,必须保证子类权限大于等于父类;b。静态只能覆盖静态。
3.25 final修饰符:最终
既可以修饰类,又可以修饰函数、变量。被final修饰的方法是不可以复写的。
被final修饰的变量是一个常量。只能赋值一次。作为常量,所以的字母应该大写。
3.26 abstract修饰符:抽象的
当父类与子类中都具有某个功能,但是功能的内容不一致时,此时父类中的这个功能就可以用abstract修饰,
然后子类就可以覆盖父类的这一功能。
特点:
a。抽象方法一定在抽象类中;
b。抽象方法和抽象类都必须被abstract修饰;
c.抽象类不可以用new创建对象,因为调用其抽象方法没有任何意义;
d。抽象类中的方法要被使用,必须由其子类复写其所有的抽象方法,然后建立对象调用。
3.3接口 ;当类中的成员都是抽象的,那么该类可以通过接口的形式来表示;
3.31 接口的特点:a.接口是对外暴露的规则;
b.接口是程序的功能扩展;
c.接口可以多实现;
d.类与接口之间是实现的关系,而且一个类在继承一个类的同时还能够实现多个接口;
e.接口与接口之间可以有继承关系。
3.32 接口的修饰符是interface
3.33 接口定义时格式特点:a。接口中的常见定义:常量,抽象方法。
b。接口中的成员都有固定的修饰符:常量:public static final 方法:public abstract
c。接口中的成员都是public的;
d。接口是不可以创建对象的,因为有抽象方法。
e。需要被子类实现,子类对接口的抽象方法全部覆盖,子类才可以实例化,否则子类是一个抽象类。
f。接口可以被多实现。
3.4多态: 事物存在的多种形态。
3.41 多态的体现:a。父类的引用直向了自己的子类对象;b。父类的引用也可以接受自己的子类对象;
3.42 多态的前提:a.必须是类与类之间的关系,要么继承,要么实现。b。通常有一个前提;存在覆盖;
3.43 多态的好处:a。多态的出现大大提高了代码的复用性。
3.44 多态的弊端:a。提高了扩展性但是只能使用父类的引用访问父类的成员。
3.45 转型:a。向上转型;类型提升;实例:Animal a=new cat();
b。向下转型:强制将父类的引用转成子类类型。实例:Cat c=(Cat)a;
3.5 Object 是所有对象的直接或者间接父类。
3.51 重要方法:equals() 比较
toString() 返回字符串
3.6 内部类 顾名思义就是一个类内部的类
3.61 内部类的访问规则:a.内部类可以直接访问外部类中的成员,包括私有的。之所以可以直接访问外部类中的成员是因为内部类中持有一个外部类的引用。外部类名。this
b。外部类要访问内部类,必须建立内部类对象。实例:Outer。Inner in=new Outer()。new Inner();
3.62 静态内部类:被static修饰的内部类。a。静态内部类只能直接访问外部类中的static成员,出现了访问局限。
b。在外部其他类中,如果直接访问static内部类的非静态成员?new Outer。Innter()。function();
c。在外部其他类中,如何直接访问static内部类的静态成员?Outer。Inner。function();
d。当内部类中定义了静态成员,该内部类必须是static。
f。当外部类中的静态方法访问内部类时。内部类也必须是static。
-----------------------------------------------------------------------------------------
我是一个菜菜菜菜菜鸟,大家不要见笑。自学的过程中总结出来的一些关于函数的知识点,我就当一次复习了。
有需要的可以参考一下,如有漏掉的或者不完善的谢谢大家指正。
作者:
liqiaohui
时间:
2014-8-19 20:46
谢谢分享 巩固基础
作者:
Java吕品
时间:
2014-8-20 22:23
这个有用。正在学这块
作者:
wyf20106
时间:
2014-8-20 22:55
谢谢楼主分享
作者:
晓风
时间:
2014-8-20 23:30
补充一些:1-e处:函数没有返回值,也可以使用return。return的作用是结束方法。3.24:子类重写父类的方法时,假如父类方法抛出了异常,子类可以不抛,或者抛只能抛父类异常本身或是父类异常的子集,即不能抛出比父类范围广的异常。3.25:被final修饰的类不能被继承,比如String,8大基本数据类型的包装类,都是final类。
作者:
華燈初上
时间:
2014-8-20 23:35
可以看看啊
作者:
wfaly
时间:
2014-8-21 22:44
谢谢 楼主分享....
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2