(接上篇博文:C功底挑战Java菜鸟入门概念干货(一))

一、Java面向对象程序设计-类的基本形式

1、“类”是把事物的数据与相关的功能封装在一起,形成的一种特殊结构,用以表达对真实世界的一种抽象概念。 
2、Java 把数据成员称为 field(属性),把方法成员称为 method(方法)。 
3、由类所创建的对象称为 instance,译为“实例”。 
4、创建属于某类的对象,可通过下面两个步骤来达成:

(1)、声明指向“由类所创建的对象”的变量。

(2)、利用 new 创建新的对象,并指派给步骤一中所创建的变量。 
5、要访问到对象里的某个属性(field)时,可通过“对象名称.属性”语法来实现,如果要调用封装在类里的方法,则可通过“对象名称.method”语法来实现。 
6、有些方法不必传递任何数据给调用端程序,因此是没有返回值的。若方法本身没有返回值,则必须在方法定义语句前面加上关键字 void。 
7、私有成员(private member)可限定类中的属性,被限制成私有的属性仅能供同一类内的方法所访问。 
8、类外部可访问到类内部的公有成员(public member)。 
9、“封装”(encapsulation):是把属性和方法包装在一个类内以限定成员的访问,以起到保护数据的作用。 
10、构造方法可视为一种特殊的方法,它的主要作用是为所创建的对象赋初值。 
11、构造方法的名称必须与其所属的类的类名称相同,且不能有返回值。 
12、从某一构造方法内调用另一构造方法,是通过 this()  这个关键字来完成的。 
13、构造方法有 public 与 private 之分。声明为 public 的构造方法可以在程序的任何地方被调用,所以新创建的对象都可以自动调用它。而被声明为 private 的则无法在该构造方法所在的类以外的其它地方被调用。
14、如果构造方法省略不写,Java 则会自动调用默认的构造方法(默认的构造方法没有任何参数)。 
15、“基本类型的变量”是指用 int、double 等关键字所声明的变量,而由类声明而得的变量,称之为“类类型的变量”,它是属于“非基本类型的变量”的一种。 
16、对象也可以用数组来存放,但必须有下面两个步骤:

(1)、声明类类型的数组变量,并用 new 分配内存空间给数组。

(2)、用 new 产生新的对象,并分配内存空 间给它。

17、如果在类 Outer 的内部再定义一个类 Inner,此时类 Inner 称为内部类(inner class),而类 Outer 则称为外部类(outer class)。

二、Java面向对象程序设计-类的继承

1、通过 extends 关键字,可将父类的成员(包含数据成员与方法)继承到子类。 
2、Java 在执行子类的构造方法之前,会先调用父类中无参的构造方法,其目的是为了对继承自父类的成员做初始化的操作。 
3、父类有数个构造方法时,如要调用特定的构造方法,则可在子类的构造方法中,通过 super()这个关键字来完成。 
4、this()是在同一类内调用其它的构造方法,而 super()则是从子类的构造方法调用其父类的构造方法。 
5、this()除了可用来调用同一类内的其它构造方法之外,如果同一类内“实例变量”与局部(local)变量的名称相同时,也可利用它来调用同一类内的“实例变量”。 
6、this()与 super()其相似之处:

(1)当构造方法有重载时,两者均会根据所给予的参数的类型与个数,正确地执行相对应的构造方法。

(2)两者均必须编写在构造方法内的第一行,也正是这个原因,this()与 super()无法同时存在同一个构造方法内。 
7、“重载”(overloading),它是指在相同类内,定义名称相同,但参数个数或类型不同的方法,因此 Java 便可依据参数的个数或类型调用相应的方法。 
8、“复写”(overriding),它是在子类当中,定义名称、参数个数与类型均与父类相同的方法,用以复写父类里的方法。 
9、如果父类的方法不希望子类的方法来复写它,可在父类的方法之前加上“final”关键字,如此该方法便不会被复写。 
10、final 的另一个功用是把它加在数据成员变量前面,如此该变量就变成了一个常量(constant),如此便无法在程序代码中再做修改了。 
11、所有的类均继承自 Object 类。 
12、复写 Object 类中的 equals() method 可用来比较两个类的对象是否相等。 
13、Java 可以创建抽象类,专门用来当做父类。抽象类的作用类似于“模板”,其目的是依据其格式来修改并创建新的类。 
14、抽象类的方法可分为两种:一种是一般的方法,另一种是以abstract关键字开头的“抽象方法”。“抽象方法”并没有定义方法体,而是要保留给由抽象类派生出的新类来定义。 
15、利用父类的变量数组来访问子类的内容的较好的做法是:

(1)先创建父类的变量数组; 
(2)利用数组元素创建子类的对象,并以它来访问子类的内容。 
16、抽象类不能直接用来产生对象。 
17、接口的结构和抽象类非常相似,它也具有数据成员与抽象method,但它与抽象类有两点不同:

(1)、接口的数据成员必须初始化。

(2)、接口里的方法必须全部都声明成 abstract。 
18、利用接口的特性来打造一个新的类,称为接口的实现(implementation)。 
19、Java并不允许多重继承。 
20、接口与一般类一样,均可通过扩展的技术来派生出新的接口。原来的接口称为基本接口或父接口;派生出的接口成为派生接口或子接口。通过这种机制,派生接口不仅可以保留父接口的成员,同时也可以加入新的成员以满足实际的需要。 
21、Java对象的多态性分为:向上转型(自动)、向下转型(强制)。 
22、通过instanceof 关键字,可以判断对象属于那个类。 
23、匿名内部类(anonymous inner class)的好处是可利用内部类创建不具有名称的对象,并利用它访问到类里的成员。

(待续见下片博文:C功底挑战Java菜鸟入门概念干货(三))

C功底挑战Java菜鸟入门概念干货(二)的更多相关文章

  1. C功底挑战Java菜鸟入门概念干货(一)

    一.认识Java 1.Java 程序比较特殊,它必须先经过编译,然后再利用解释的方式来运行.  2.Byte-codes 最大的好处是——可越平台运行,可让“一次编写,处处运行”成为可能.  3.使用 ...

  2. JAVA菜鸟入门HelloWorld

    一:HelloWorld进入菜鸟心中 1.最原始的一切从HelloWorld开始 首先本机安装JDK,配置好path环境变量 用文本编辑器editplus或notepad++创建一个HelloWorl ...

  3. 微信小程序之菜鸟入门教学(二)

    昨天学习了一些简单的概念,今天开始实际操作,通过搭建简单的计算器来学习小程序的架构 一.小程序框架 程序框架如上图所示.由此可见,框架的基本构成为: 1. app.js . app.wxss 2. a ...

  4. Java Web入门学习(二) Eclipse的配置

    Java Web学习(二) Eclipse的配置 一.下载Eclipse 1.进入Eclipse官网,进行下载 上图,下载Eclipse IDE for JaveEE Developers 版本,然后 ...

  5. Ubuntu菜鸟入门(十二)—— 主题美化

    一.unity-tweak-tool 1.软件介绍 调整 Unity 桌面环境,还是推荐使用Unity Tweak Tool,这是一个非常好用的 Unity 图形化管理工具,可以修改工作区数量.热区等 ...

  6. Java反射01 : 概念、入门示例、用途及注意事项

    1.Java反射定义 本文转载自:https://blog.csdn.net/hanchao5272/article/details/79360452 官方定义如下: Reflection enabl ...

  7. 《JAVA 从入门到精通》 - 正式走向JAVA项目开发的路

    以前很多时候会开玩笑,说什么,三天学会PHP,七天精通Nodejs,xx天学会xx ... 一般来说,这样子说的多半都带有一点讽刺的意味,我也基本上从不相信什么快速入门.我以前在学校的时候自觉过很多门 ...

  8. Java快速入门-02-基础篇

    Java快速入门-02-基础篇 上一篇应该已经让0基础的人对 Java 有了一些了解,接一篇更进一步 使用 Eclipse 快捷键 这个老师一般都经常提,但是自己不容易记住,慢慢熟练 快捷键 快捷键作 ...

  9. Java快速入门-01-基础篇

    Java快速入门-01-基础篇 如果基础不好或者想学的很细,请参看:菜鸟教程-JAVA 本笔记适合快速学习,文章后面也会包含一些常见面试问题,记住快捷键操作,一些内容我就不转载了,直接附上链接,嘻嘻 ...

随机推荐

  1. table操作:边框-斑马线-多表头-焦点高亮-自动求和

    一.操作table,本例子实现的功能: 1.table等宽边框2.table斑马线3.实现table多表头4.焦点所在行高亮5.自动计算总分 二.效果图 三.代码: <!DOCTYPE html ...

  2. JAVA之GUI编程窗体事件

    package GUI; import java.awt.Button;import java.awt.FlowLayout;import java.awt.Frame;import java.awt ...

  3. wampserver 绑定域名(wampserver 本地域名测试配置)

    一.tomact 配置虚拟主机 1.打开Apache菜单下“httpd.conf”文件: 找到“# Include conf/extra/httpd-vhosts.conf” , 把这句前面的#号去掉 ...

  4. 使用SWFUpload插件上传文件

    演示代码由两部分组成,包括前台文件和后台文件: 1.前台文件index.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transi ...

  5. sql发邮件

    DROP PROCEDURE USP_CheckProductCodeRepeatAndSendMail go ---检查商家是否有重复的商品编号,如果有则发送给系统配置中接收的用户邮箱 CREATE ...

  6. Umbraco学习2------数据类型

    一.基础概念 在使用Umbraco这类CMS制作网站之前,先要搞清楚的是,和概念中网站制作的区别. 暂时忘掉所谓的ADO.NET存储.忘掉ASP.NET.忘掉多层架构什么的. 只需要关注:要显示什么. ...

  7. karma note

    karma 简介 karma不是一个测试框架,仅仅是启动了一个httpServer karma仅仅是一个跑测试的平台(runner), 我们可以使用各种测试框架, 如: Jasmine Mocha Q ...

  8. 滴滴司机:要不是Uber,我买奥迪的45万元不知何时赚回来呢!

    你在专车里看风景,看风景的人在系统上看你.补贴装饰了你的出行,你装饰了平台的梦. 这是移动互联网时代城市人们每天出行的形象写照.受“份子钱”之苦的出租车司机既享受也抗议,一洗“黑车”之名的专职司机满城 ...

  9. 封装的localstorge的插件,store.js

    封装的localstorge的插件,store.js https://github.com/marcuswestin/store.js/

  10. Identity Card(水题)

    Identity Card Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) To ...