五到八章总结

六章

1.对象:通常划分为两个部分:动态属性和静态属性动态属性就是对象可执行的动作静态属性就是不能动的部分,这个部分被称为属性,任何对象都会具备其自身属性类

2.面向对象具有封装性,继承性和多态性的特点。封装:是面向对象编程的核心,将对象的属性和行为封装起来,载体是类。

3.封装保证了类内部数据结构的完整性,使用类的用户不能轻易的直接操作类的数据结构,只能执行类允许公开的数据,避免了外部操作对内部数据的影响,提高了系统的可维护性。

4.继承性主要利用特定对象的共有属性,子类可以继承父类所有的属性,子类还可以衍生子类,但最末尾的类依然能继承父类所有的属性父类和子类存在一种关系,一个类在继承中它即可以是其他类的父类,为其他类提供属性和行为,也可以是其他类的子类。

5.多态:其实就是父类对象应用于子类的特征就是多态,多态就是继承父类的所有但又会有不属于父类也不同于其他子类的属性就相当于它的个性。

6.封装:成员变量和成员方法就是静态属性和动态属性;
 

 7.我们定义了成员变量和成员方法,有{ }的就是方法在定义成员变量时我们会涉及到修饰符,修饰符有四种。我们通过这些可以知道我们刚刚定义的修饰符是私有的,不能被其他文件和其他文件中的类使用,那么我们可以使用getter(获取) 和setter(设置)方法,可以让变量除本类外也可以使用
 

8.静态就是static,可以有静态常量、静态变量、静态方法和多个语句静态。静态是这个类的专属,只有这个类可以用,就是这个文件可以用,只要它们在一个文件里就行
9.引用真正的操作标识符实质上是一个引用,引用的语法类名 对象的引用变量
10.对象的销毁:为什么要销毁对象?每个对象都有生命周期,当对象的生命周期结束时,分配给该对象的内存地址需要被回收垃圾回收器

七章

1.继承在面向对象开发思想中是一个非常重要的概念,它使整个程序架构具有一定的弹性。在程序中复用一些已经定义完善的类,不仅可以减少软件开发周期,也可以提高软件的可维护性和可扩展性。

2.在Java语言中,一个类继承另一个类需要使用关键字extends,关键字extends的使用方法如下:class Child extends Parent{ }          因为Java只支持单继承,即一个类只能有一个父类,所以类下面的代码是错误的:class Child estends Parent1,parents2{ }          子类在继承父类之后,创建子类对象的同时也会调用父类的构造方法。

3.子类继承父类之后可以调用父类创建好的属性和方法。Java虽然不允许同时继承两个父类,但不代表没有多的继承关系,可以通过类似“祖父>父>儿子>孙子”的方式实现多代继承。

4.Object类是比较特殊的类,它是所有类的父类,是Java类层中最高层类。用户创建一个类时,除非已经指定要从其他类继承,否则它就是从Java.lang.Object类继承而来的。Java中的每个类都源于Java.lang.Object类,如String类、Integer类等都是继承Object类。除此之外,自定义的类也都继承于Object类。

5.在Object类中,主要包括clone()、finalize()、equals()、toString()等方法,由于所有的类都是Object类的子类,所以任何类都可以重写Object类中的方法。       注意:Object类中的getClass()、notify()、notifyAll()、wait()等方法不能被重写,因为这些方法被定义为final类型。
getClass()方法是Object类定义的方法,它会返回对象执行时的Class实例,然后使用此实例调用getName()方法可以取得类的名称。语法如下:getClass().getname();        可以将getClass()方法与toString()方法联合使用

6.toString()方法的功能是将一个对象返回为字符串形式,它会返回一个String实例。在实际的应用中通常重写toString()方法,为对象提供一个特定的输出模式。当这个类转换为字符串或与字符串连接时,将自动调用重写的toString()方法。

7.在Java语言中,有两种比较对象的方式,分别为“==”运算符与equals()方法。两者的区别在于:“==”比较的两个对象引用内地地址是否相等,而equals()方法比较的是两个对象的实际内容。

8.向上转型可以被理解为将子类类型的对象转换为父类类型的对象,即把子类类型的对象之间赋值给父类类型的对象,进而实现按照父类描述子类的效果。在运用向上转型的过程中,父类的对象无法调用子类独有的属性或者方法。

9.向下转型可以被理解为将父类类型的对象转换为子类类型的对象。但是,运用向下转型,如果把一个较抽象的类的对象转换为一个较具体的类的对象,这样的转型通常会出现错误。

10.发现报错是因为父类对象不能直接赋值给予类对象。如何修正呢?答案就是强制类型转换。语法如下:子类类型 子类对象 = (子类类型)父类对象;

11.使用instanceof关键字判断对象类型:当在程序中执行向下转型操作时,如果父类对象不是子类对象的实例,就会发生ClassCastException异常,所以在执行向下转型之前需要养成一个良好的习惯,就是判断父类对象是否为子类对象的实例。可以使用instanceof关键字判断是否一个类实现了某个接口,也可以用它来判断一个实例对象是否属于一个类。语法如下:

myobject instanceof ExampleClass

myobject:某类的对象引用

ExampleClass:某个类

12.方法的重载就是在同一个类中允许存在一个以上的同名方法,只要这些方法的参数个数或类型不同即可。       

可以总结出编译器是利用方法名、方法个参数类型和参数的个数、参数的顺序来确定类中的方法是否唯一。方法的重载使得方法以统一的名称被管理,使程序代码更有条理。

在谈到参数个数可以确定两个方法是否具有重载关系时,会想到定义不定长参数方法。语法如下                返回值 方法名(参数数据类型…参数名称)

13.final关键字可用于变量声明,一旦该变量被设定,就不可以再改变该变量的值。通常,由final定义的变量为常量。final关键字定义的变量必须声明时对其进行赋值操作。final除了可以修饰基本数据类型的常量还可以修饰对象的引用,也可以用来修饰数组。一旦一个对象引用被修饰为final后,它就只能恒定指向一个对象,无法将其改变以指向另一个对象。

14.将方法定义为final类型,可以防止子类修改父类的定义与实现方式,同时定义为final的方法的执行效率要高于非final方法。如果一个父类的某个方法被设置为private,子类将无法访问该方法,自然无法覆盖该方法。

15.final类:定义为final的类不能被继承。如果希望一个类不被任何类继承,并且不允许其他人对这个类进行任何改动,可以将这个类设置为final类。语法如下:        final 类名{}如果将某个类设置为final类,则该类中的所有方法都被隐式设置为final方法,但是final类中的成员变量可以被定义为final或非final形式。

16.多态:多态的意思是多种形态,利用多态可以使程序具有良好的扩展性,并可以对所有类对象进行通用的处理。已经学习过子类对象可以作为父类的对象实例使用,这种将子类对象视为父类对象的做法称为“向上转型”。

17.抽象方法:修饰符 abstract 返回参数 方法名(传入参数); 使用abstract关键字定义的类称为抽象类,而使用这个关键字定义的方法称为抽象方法。抽象方法没有方法体,没有意义,除非它被重写,而承载这个抽象方法的抽象类必须被继承,实际上抽象类除了被继承没有任何意义。语法如下:
1、public abstract class Parent{    //修饰类 abstract class  类名
 2、   abstract void testAbstract();    //定义抽象方法

如果声明一个抽象方法,就必须将承载这个抽象方法的类定义为抽象类,不能在非抽象中获取抽象方法。只要类中有一个抽象方法,此类就被标记为抽象类。抽象类被继承后需要实现其中所有的抽象方法,也就是保证以相同的方法名称、参数列表和返回值类型创建出非抽象方法,当然也可以是抽象方法。

18.接口:接口是抽象类的延伸,可以将它看作纯粹的抽象类,所有的方法都是抽象方法,接口中的所有方法都设有方法体。Java语言每个语言每个类可以实现多个接口。

接口使用interface关键字进行定义,语法如下:

public interface Paintable{    void draw();      //定义接口方法可省略public abstract关键字  }

public:修饰符。

interface:定义接口关键字

Paintable:接口名称

19.Java中不允许出现多重继承,但使用接口就可以实现多重继承。一个类可以同时实现多个接口,因此可以将所有需要继承的接口放置在implement关键字后并使用逗号隔开。实现多个接口的语法如下:class 类名 implement 接口1,接口2,····,接口n

但这可能会在一个类中产生庞大的代码量,因为继承一个接口时需要实现接口中所有的方法。一个接口可以继承另一个接口,语法如下:

1、interface intf1{}
2、interface intf2 extendsintf1{}  //接口继承接口

八章

1.Java中每个接口或类都来自不同的类名,无论是Java API中的类与接口还是自定义的类与接口,都需要隶属于某一个类包。
2.成员内部类:在一个类中使用内部类,可以在内部类中直接存取其所在类的私有成员变量,语法如下:class OuteruClass{//外部类}                    class InnerClass{//内部类} 
 3.成员内部类不止可以 在外部类使用,在其他类中也可以使用。在其他类中创建内部类的对象语法特殊,如下:
 4.成员内部类不止可以 在外部类使用,在其他类中也可以使用。在其他类中创建内部类的对象语法特殊,如下:外部类outer = new 外部类()  外部类.内部类 inner = outer.new 内部类(); 
5.使用匿名类时一个遵循以下原则:(1)匿名类不能写构造方法(2)匿名类不能定义静态的成员(3)如果匿名类创建的对象没有赋值给任何引用变量,会导致该对象用完一次就会被Java虚拟销毁

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值