Java面向对象程序设计——(二)AlexanderTheGreat

private:成员变量和方法只能在其定义的类中被访问,具有类可见性。

默认:成员变量和方法只能被同一个包里的类访问,具有包可见性。

protected:可以被同一个包中的类访问。被同一个项目中不同包中的子类访问。

public:可以被同一个项目中的所有类访问,具有项目可见性,这是最大的访问权限。

2、类和对象的关系

类是对象的类型,对象是类的实例。

类是对象的类型,不同于Int类型,具有方法。类通过调用构造变为对象。

3、new关键字的3个作用

①开辟空间,向jvm索要空间

②创建对象

③调用方法

第二章:类的无参、带参方法

1、成员变量和局部变量

成员变量:类的方法可以直接使用该类定义的成员变量。如果其他类的方法要访问它,必须首先创建该类的对象,然后才能通过操作符“.”来引用。

局部变量:它的作用域仅仅在定义改变量的方法内,因此只有在这个方法中能够使用。

异同点:

①作用域不同。局部变量的作用域仅限于定义它的方法,在改方法外无法访问。成员变量的作用域在整个类内部都是可见的,所有成员方法都可以使用,如果访问权限允许,还可以在类外部使用成员变量。

②初始值不同。对于成员变量,如果在类定义中没有给它赋初始值,Java会给它一个默认值,基本数据类型的值为0,引用类型的值为null。但是Java不会给局部变量赋初始值,因此局部变量必须要定义赋值后再使用。

③在同一个方法中,不允许有同名的局部变量。在不同的方法中,可以有同名的局部变量。

④局部变量可以和成员变量同名,并且在使用时,局部变量具有更高的优先级。

2、如何生成JavaDoc文档

在MyEclipse中选择“File”-------->"Export"选项,弹出“导出对话框”,选择“Java”菜单中的“JavaDoc”选项,提交即可。

3、定义一个不定项的带参数组

语法:

package包名;

Java中,包的设计与文件系统结构相对应。因此,在命名包时,要严格遵守以下编码规范。

①Java包的名字通常由小写字母组成,不能以圆点开头或结尾。例如,“.mypackage”是错误的包名。

packagecn.jbit.mypackage;

③包名的后续部分依不同机构各自内部的规范不同而不同。这类命名规范可能以特定目录名的组成来区分部门、项目、机器或注册名。例如:

packagecn.jbit.research.powerproject;

部门名项目名

第三章:对象和封装。

1、类的成员包括:类的成员变量和成员方法,构造方法,代码块。

2、类(Class)和对象(Object)是面向对象中的两个核心概念。

3、Java中使用final关键字修饰常量。并且常量名通常为大写。

finalStringSEX_MALE=“Q仔”;finalStringSEX_FEMALE="Q妹";

问题1:如果想让企鹅类不能被其他类继承,不允许再有子类,则应该如何实现呢?

可以通过给Penguin类添加final修饰符来实现。

finalClassPenguin{}classSubPenguinextendsPenguin{//此行出现错误}问题2:如果企鹅类可以有子类,但是它的print()方法不能再被子类重写,则应该如何实现呢?

可以通过print()方法添加final修饰符来实现。

classPenguin{publicfinalvoidprint(){}}classSubPenguinextendsPenguin{publicvoidprint(){}//此行出现错误}问题3:如果企鹅类可以有子类,但是增加一个居住地属性home,规定只能取值“南极”,则应该如何实现呢?

通过给home属性添加final修饰符来实现

publicclassPenguin{finalStringhome="南极";//居住地publicvoidsetHome(Stringname){this.home=home;//错误,home不可以再次赋值}}常见错误:

classDog{Stringname;publicDog(Stringname){this.name=name;}}classTest{publicstaticvoidmain(String[]args){finalDogdog=newDog("欧欧");dog.name="美美";//①dog=newDog("丫丫");//②}}①出代码是正确的。②是错误的。使用final修饰引用型变量,变量不可以再指向另外的对象,所以②是错误的,但是所指对象的内容是可以改变的,所以①是正确的。

使用final修饰引用型变量时,变量的值是固定不变的,而变量所指向的对象的属性值是可变的。

4、构造方法及其重载

如果同一个类中包含了两个或两个以上的方法,它们的方法名相同,方法参数的个数或参数类型不同,则称该方法被重载了。,这个过程称为方法重载。成员方法和构造方法都可以进行重载。

5、static修饰符

static可以用来修饰属性,方法和代码块。static修饰的变量属于这个类所有。即由这个类创建的所有对象共用同一个static变量。通常把static修饰的属性和方法称为类属性(类变量)和类方法。

示例1:

StaticTest类

publicclassStaticTest{publicintn=0;publicstaticintb=0;publicvoidaddn(){n=n+1;}publicvoidaddb(){b=b+1;}}Test类

publicclassTest1{publicstaticvoidmain(String[]args){StaticTestst=newStaticTest();System.out.println("调用方法前的n:"+st.n);System.out.println("调用方法前的b:"+st.b);st.addb();st.addn();System.out.println("调用方法后的n:"+st.n);System.out.println("调用方法后的b:"+st.b);StaticTestst1=newStaticTest();System.out.println("新对象中的n:"+st1.n);System.out.println("新对象中的b:"+st1.b);}}运行结果:

调用方法前的n:0调用方法前的b:0调用方法后的n:1调用方法后的b:1新对象中的n:0新对象中的b:1

结论:

①在加载类的过程中,完成静态变量的内存分配,再执行静态块,两者是在创建对象之前执行的。

②类属性和类方法可以通过类名和对象名访问,示例属性和示例方法只能通过对象名访问。

③类方法只能访问类属性和其他类方法。

6、使用this调用重载的构造方法,只能在构造方法中使用,必须是构造方法的第一条语句。

publicclassPenguin{publicStringname;publicStringsex;publicinthealth;publicintlove;publicPenguin(Stringname,Stringsex){this.name=name;this.sex=sex;}publicPenguin(Stringname,inthealth,intlove,Stringsex){this(name,sex);//调用重载的构造方法this.health=health;this.love=love;}}第四章:继承

1、抽象类:抽象类不能是静态类,不能用final修饰,抽象类可以有普通方法和属性,如果一个类继承抽象类,那么必须重写抽象类中的所有抽象方法。除非子类也是抽象类。

(一个类实现接口时,也必须实现接口中的所有抽象方法)

2、方法的重写:

在子类中对父类中同名的方法进行重写,成为方法的重写。

方法的重写满足如下要求:

①重写方法和被重写的方法必须具有相同的方法名。

②重写方法和被重写方法必须具有相同的参数列表。

③重写方法的返回值类型必须和被重写方法的返回值类型相同或是其子类。

④重写方法不能缩小被重写方法的访问权限。

3、重载和重写的区别和联系:

重载涉及同一个类中的同名方法,要求方法名相同,参数列表不同,与返回值类型,访问修饰符无关。

重写涉及的是子类和父类之间的同名方法,要求方法名相同,参数列表相同,返回值类型相同(或者是其子类),访问修饰符不能严于父类。

1、子类转换成父类时的规则。

①将一个父类的引用指向一个子类对象,称为向上转型,自动进行类型转换。

②此时通过父类引用变量调用的方法是子类覆盖或继承父类的方法,不是父类的方法。

③此时通过父类引用变量无法调用子类特有的方法。

1、接口可以看作一种特殊的“抽象类”,抽象类利于代码复用,接口利于代码的扩展和维护。

2、说明:

①接口的命名规则与类相同,如果修饰符是Public,则该接口在整个项目中可见;如果省略修饰符,则该接口只在当前包可见。

②接口中可以定义常量,不能定义变量。接口中的属性会自动调用publicstaticfinal修饰,即接口中的属性都是全局静态常量。接口中的常量必须在定义时指定初始值。

puclicstaticfinalintPI=3.14;

intPI=3.14;//在接口中,这两个定义语句效果完全相同

intPI;//错误,在接口中必须指定初始值,在类中会有默认值。

3、接口中的属性都是全局静态常量,接口中的方法都是全局抽象方法,接口中没有构造方法。

一个类如果实现了一个接口,则必须实现接口中的全部方法,否则必须将其定义为抽象类。

1、抛出异常——throw

2、throw和throws的区别:

②使用的位置不同:throw位于方法体内部,可以作为单独语句使用;throws必须跟在方法参数列表的后面,不能单独使用。

③内容不同:throw抛出一个异常对象,而且只能是一个;throws后面跟异常类,而且可以跟多个异常类。

3、自定义异常

自定义异常一般有如下几个步骤:

①定义异常类,并继承Exception或者RuntimeException,前者为Checked异常,后者为运行时异常。

②编写异常的构造方法,并继承父类的实现。常见的构造方法有四种形式。参见示例。

③实例化自定义异常对象,并在程序中使用throw抛出。

/***异常类**/publicclassGenderExceptionextendsException{//构造方法1publicGenderException(){super();}publicGenderException(Stringmessage){super(message);}publicGenderException(Stringmessage,Throwablecause){super(message,cause);}publicGenderException(Throwablecause){super(cause);}}/***Person**/publicclassPerson{privateStringsex;publicStringgetSex(){returnsex;}publicvoidsetSex(Stringsex)throwsGenderException{if("男".equals(sex)||"女".equals(sex)){this.sex=sex;}else{thrownewGenderException("性别必须是\"男\"或者\"女\"");}}}/***測試類**/publicclassTest{publicstaticvoidmain(String[]args){Personperson=newPerson();try{person.setSex("Male");}catch(GenderExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}}

THE END
1.面向对象课程设计小游戏.docx通过本课程的学习,学生将能够理解对象、类、继承、多态等核心编程概念,并在实践中运用这些知识解决实际问题。理解面向对象编程的基本概念和特点。掌握类和对象的定义和使用。学会使用继承和多态设计更加灵活和可扩展的程序。能够使用Python或其他编程语言实现简单的面向对象程序。能够运用面向对象的思想分析并解决实际问题。https://www.renrendoc.com/paper/358656858.html
2.实验教学体系与内容实验教学是培养学生实践能力的最重要的实践教学环节,以培养研究型和实践型相结合、具有较强创新能力的复合型人才为目标,增加综合性、设计型和自主性实验项目的比例,逐步将延伸学科与基础学科的结合纳入本课程体系等理念,在实验教学中采取分层次、分阶段、循序渐进的模式,由浅入深、由简单到综合,采用课内、课外结合方式...https://szsy.sdufe.edu.cn/info/1017/1008.htm
3.软件工程师培训深圳电脑培训就选深圳北大青鸟V+电子商务网站 QQ数据库管理 QQ用户信息管理 超市商品管理 S2 博闻、原理、思想 就业级别: 软件开发程序员 优化MySchool数据库设计 深入.NET平台和C#编程 深入.NET平台的软件系统分层开发 使用Java实现面向对象编程 使用jQuery快速高效制作网页交互特效 使用JSP/Servlet技术开发新闻发布系统 ...http://sz.kawaedu.com/itpeixun/soft/
4.电子宠物ePet电子宠物网站第一章“我的宝贝儿” 按书本要求完成 按书本要求完成 按书本要求完成 按书本要求完成 上传者:linchangpeng9时间:2009-09-19 电子宠物系统epet项目案例完整代码 电子宠物系统,epet完整代码,青鸟项目案例javaoop面向对象的经典案例。我設置的下載所需積分是5分,如果系統改了可以聯繫我, ...https://www.iteye.com/resource/els_lateen-4433153
1.面向对象编程面向对象编程簡介面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。面向对象的程序设计把计算机程序视为一组对象的集合,而每个对象都可以接收其他对象发过来的消息,并处理这些消息,计算机程序的执行就是一系列消息在各个对象之间传递。 https://blog.csdn.net/Jackarryy/article/details/143593105
2.面向对象编程子:引言面向对象编程是一种广泛应用于软件开发中的编程方法,它的核心思想是将现实世界中的事物抽象成对象,并通过对象之间的相互作用来完成程序的功能。面向对象编程子是对于面向对象编程领域的一个拓展和深化的研究,它涉及到面向对象编程的原则、设计模式、实现技巧等方面的内容。在本文中,我们将介绍面向对象编程子的一些重要概...http://www.shucuole.com/xbc/20416.html
3.新手小白入门必学JAVA面向对象之多态java说到多态,一定离不开其它两大特性:封装和继承,下面这篇文章主要给大家介绍了关于新手小白入门必学JAVA面向对象之多态的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下+ 目录1. 概念多态是面向对象程序设计(OOP)的一个重要特征,指同一个实体同时具有多种形式,即同一个对象,在不同时刻,代表的对象...https://www.jb51.net/article/237494.htm
4.电子宠物系统epet项目案例完整代码码农集市专业分享IT编程学习资源电子宠物系统,epet完整代码,青鸟项目案例javaoop面向对象的经典案例 点赞(0) 踩踩(0) 反馈 所需:1 积分 电信网络下载 gouyadonggyd 2014-09-13 15:48:08 评论 还行吧,在这个之前下了一个和这个差不多的,这个也可以用,就是代码没有整理的太好,有点凌乱的感觉,别的都很好...https://www.coder100.com/index/index/content/id/863035
5.javasc是什么sc在java中是什么意思模拟“电子宠物” 使用面向对象思想实现简易图书管理系统 模拟游戏角色PK 游戏角色类 玩家类 错题解析 面向对象总结 面向对象 方法 概念 一段独立的代码,能完成一件事情,可以被重复调用。 方法可以减少重复的代码。 如何调用方法 通常情况下,方法通过对象或类名使用".“操作符进行调用,也可能不用”."直接调用。 https://blog.51cto.com/u_16213649/7963017