Java学习笔记-day3--面向对象技术

版权声明:学习分享,共同进步 https://blog.csdn.net/Andrew_jdw/article/details/82897815

1.面向对象的三个核心特性:类的封装、继承和多态。



2.Java应用程序和小应用程序有一个共同点:整个程序中只包括一个类;不同点在于:这个唯一的类的定义不尽相同。
(1)java应用程序中形如:public class testBranch1;
(2)java小应用程序中形如:public class VariableScope extends Applete



3.在小应用程序中,所有的类都是从Applet类中继承来的;Applet是系统以及定义的标准类。



4.应用程序中,也使用了其他的类,语句System.out.println();其中System也是系统已经定义的标准类,包含在java.lang中,编译时系统自动导入。



5.类:它把描述其属性的数据及对数据处理的函数封装在一起。类就是一种包含数据存储与对数据处理的一种数据类型。



6.对象:类的具体的一个个的个体称为它所属类的对象。



7.类中的变量,称为成员变量。类中对数据操作的函数,称为成员方法。这些变量和函数都是属于类的,所以是类的成员。



8.Java类的定义格式分为两部分:类声明和类主体。类的声明定义了类的名称、访问权限、与其他类的关系。类的主体定义了该类的成员:成员变量与成员方法。



9.类主体是类的主体部分,要完成类的成员变量和成员方法的定义和实现。Java类中的成员方法的定义必须在类体内完成。成员变量也必须在类主体内声明,且不包括在方法体中。



10.类中定义的方法通常起到两种作用:围绕着类的属性进行各种操作;与其他的类或对象进行数据交流、消息传递等操作。



11.声明成员方法(成员函数)必须有方法名,方法的返回类型,如果没有参数,可以为空。格式:修饰符 返回值类型 方法名(参数列表) throws[异常类]
方法体:局部变量声明;语句序列;



12.对象是类的实例,在程序中创建每一个对象将在内存中开辟一块空间,存储该对象的属性和方法。每个对象都属于一种类型,即所属的类。程序是一大堆对象的组合;通过消息传递。



13.定义对象必须声明该对象所属的类。声明格式:<类名> <对象名>;对象声明只是告诉编译器,对象所属的类,并没有真正为对象分配存储空间,只有使用new运算符才能实例化对象。
也可以在声明对象的同时实例化对象,格式:<类名> <对象名> = new 类名([参数列表]); 



14.构造方法是一种特殊的成员方法,它是一个与类同名的成员方法,且没有返回值。对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。当类实例化一个对象时会自动调用构造方法。构造方法和其他方法一样也可以重载。



15.构造方法的作用:创建对象时,由系统自动调用,完成对象的初始化。



16.构造方法的特点是用来完成对对象初始化的特殊的成员函数;与类同名,没有函数返回值;在创建一个类的新对象的同时,系统会自动调用该类的构造函数为新对象初始化;构造函数不能由编程人员显式地直接调用;不能被继承;一个类可以有多个构造函数,重载构造函数。



17.如果用户不定义类的构造函数,系统会自动为该类生成一个默认的构造函数,这个构造函数的名字与类名相同,它没有任何形式参数,也不完成任何操作。



18.Java可以使用析构方法finalize()来销毁一个对象,将资源归还系统。一个类只有一个析构方法,没有参数,也没有返回值。



19.封装的含义:类的设计者把类设计为一个黑匣子,使用者只能调用类中定义的公共(public)方法;只能通过对象调用其公共方法(外部接口),看不到方法的实施细节,不能对类的数据直接操作。



20.封装的目的:隐藏类的实施细节,使用者必须通过类的外部接口访问类的数据,从而增加代码的可维护性。



21.java通过对成员设置访问权限达到封装的目的。有四种访问权限:public、默认、protected和private
(1)public成员可以被所有的类访问,在类的外部通过对象可以调用类public成员
(2)默认,类中不加任何访问权限限定的成员属于默认的访问状态,可以被这个类本身和同一个包中的类所访问;
(3)protected成员可被该类及其子类、同一个包中的所有其他的类及其他包中的该类的子类访问。
(4)private成员只能被这个类本身访问;只可以在类的内部被本类的方法访问。



22.声明一个类时,可以不使用控制权限,也可以使用public将其声明为共有的,不能使用其他权限修饰符。



23.一个源文件中可以有多个类,但只能有一个public类,该类与文件同名。如果改程序文件是个可执行程序,那么public类要有main()作为程序执行的入口。



24.Java成员分实例成员和类成员,类成员也称为静态成员。



25.用关键字static修饰的变量为静态变量,也叫类变量,系统运行时,整个类的静态变量只有一个拷贝;可以通过类名直接访问类变量。



26.类变量与实例变量的区别:
(1)实例变量是隶属于一个具体对象,必须通过对象访问;
(2)类变量是属于整个类,既可以通过类访问,也可以通过对象访问;所有对象共享类的静态变量。



27.没有使用关键字static修饰的方法是实例方法,实例方法既可以访问实例变量,也可以访问类变量,实例方法只可以通过对象访问。



28.类方法:类中使用关键字static修饰的方法;只能访问类变量。类方法既可以通过对象访问,也可以通过类名访问。



29.一个新类可以继承父类的所有非私有的成员(构造方法不能继承);被继承的类称为超类(父类),新建立的类为子类。java中每个类都有超类,只允许单一继承,即每个类只能有一个超类。类继承不改变成员的访问权限。



30.在定义类时,关键字extends实现类的继承,格式:[修饰符] class <子类名> extends <超类名>{子类类体};



31.用户在自定义一个类时,如果不声明它的超类,就默认是Object类的子类。系统以及定义好Object类,Object已经定义了类的基本属性与行为,每个类都具有Object类的属性与方法。



32.子类可继承超类的所有public、protected和默认的成员变量,如果子类成员变量名与超类相同,则子类覆盖超类成员,隐藏超类的成员。



33.子类继承超类所有非私有的成员方法,但不能继承构造方法。如果子类成员方法与超类相同,则不能继承。



34.Java有一个特殊的引用值this,它用来在一个成员函数内部指向当前的对象。其作用如下:
(1)访问本类的成员变量与成员方法,格式:this.变量名   this.方法名
(2)调用本类的构造方法:this(参数表)



35.super作用:
(1)用来引用被子类隐藏的超类成员变量与成员方法。super.变量名 super.方法名
(2)调用超类的构造方法:super(参数表)



36.最终类:如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。如果希望类不被继承就把它声明为final类。



37.如果觉得定义最终类没必要,只是希望类中的方法不希望被子类修改(覆盖),可以在类中把方法定义为最终方法。最终方法不能被子类修改。如:final void fun(){...}



38.抽象方法:在一个类中声明为抽象方法时,意味着这个方法必须在子类中被重新定义(覆盖),格式如下:abstract void f();构造方法不能为抽象的,抽象与最终不能同时存在。抽象方法一般是仅有方法头而没有方法体的方法;抽象方法为该类的子类定义一个方法的接口标准,子类必须根据需要重新定义它。



39.抽象类:任何含有抽象方法的类必须声明为抽象类;抽象类是不能实例化的类,即不能直接用new运算符生成实例。抽象类只能被子类继承,格式:public abstract class myclass{...}



40.实现多态的途径:方法重载和方法覆盖



41.一个类中有多个同名带有不同参数表的方法,即方法重载。必须满足:
(1)方法名字相同,参数必须不同:参数性不同,或参数个数不同
(2)返回类型可以不同,也可以相同



42.一个类可以有多个构造方法,也是重载。



43.如果子类与超类的方法同名,则不能继承超类的方法,而胡思子类覆盖了超累的方法;覆盖要注意以下几点:
(1)子类不能覆盖超类中的final或static方法 ;
(2)超类的abstract在子类中必须覆盖,或者也声明为abstract;
(3)子类覆盖超类方法时,必须满足:同名、返回值相同、参数个数相同。

猜你喜欢

转载自blog.csdn.net/Andrew_jdw/article/details/82897815