java面向对象经典整理
百一测评——Java经典面试题 带答案

试卷名称:Java经典面试题带答案试卷描述:java笔试题目、招聘笔试、微信考试、在线考试试卷链接:试卷限时:50分一.单项选择题每题分值:分是否题目乱序:是是否选项乱序:是是否可回溯:是难度:中1.[单选]Java是从()语言改进重新设计。
A.AdaB.C++C.PasacalD.BASIC答案:B2.[单选]下列语句哪一个正确()A.Java程序经编译后会产生machine codeB.Java程序经编译后会产生byte codeC.Java程序经编译后会产生DLLD.以上都不正确答案:B3.[单选]下列说法正确的有()A.class中的constructor不可省略B.constructor必须与class同名,但方法不能与class同名C.constructor在一个对象被new时执行D.一个class只能定义一个constructor答案:C4.[单选]提供Java存取数据库能力的包是()A.B.C.D.答案:A5.[单选]下列运算符合法的是()A.&&B.<>C.ifD.:=答案:A6.[单选]执行如下程序代码a=0;c=0;do{--c;a=a-1;}while(a>0);后,C的值是()A.0B.1C.-1D.死循环答案:C7.[单选]下列哪一种叙述是正确的()A.abstract修饰符可修饰字段、方法和类B.抽象方法的body部分必须用一对大括号{}包住C.声明抽象方法,大括号可有可无D.声明抽象方法不可写出大括号答案:D8.[单选]下列语句正确的是()A.形式参数可被视为localvariableB.形式参数可被字段修饰符修饰C.形式参数为方法被调用时,真正被传递的参数D.形式参数不可以是对象答案:A9.[单选]下列哪种说法是正确的()A.实例方法可直接调用超类的实例方法B.实例方法可直接调用超类的类方法C.实例方法可直接调用其他类的实例方法D.实例方法可直接调用本类的类方法答案:D二.多项选择题每题分值:分是否题目乱序:是是否选项乱序:是是否可回溯:是难度:中10.[多选]下列说法正确的有()A.环境变量可在编译sourcecode时指定B.在编译程序时,所能指定的环境变量不包括class path C.javac一次可同时编译数个Java源文件D.能指定编译结果要置于哪个目录(directory)答案:BCD11.[多选]下列标识符不合法的有()A.newB.$UsdollarsC.1234D.答案:ACD12.[多选]下列说法错误的有()A.数组是一种对象B.数组属于一种原生类C.intnumber=[]={31,23,33,43,35,63}D.数组的大小可以任意改变答案:BCD13.[多选]不能用来修饰interface的有()A.privateB.publicC.protectedD.static答案:ACD14.[多选]下列正确的有()A.call byvalue不会改变实际参数的数值B.call by reference能改变实际参数的参考地址C.call byreference不能改变实际参数的参考地址D.call byreference能改变实际参数的内容答案:ACD15.[多选]下列说法错误的有()A.在类方法中可用this来调用本类的类方法B.在类方法中调用本类的类方法时可直接调用C.在类方法中只能调用本类中的类方法D.在类方法中绝对不能调用实例方法答案:ACD16.[多选]下列说法错误的有()A.Java面向对象语言容许单独的过程与函数存在B.Java面向对象语言容许单独的方法存在C.Java语言中的方法属于类中的成员(member)D.Java语言中的方法必定隶属于某一类(对象),调用方法与过程或函数相同答案:ABC17.[多选]下列说法错误的有()A.能被成功运行的javaclass文件必须有main()方法B.J2SDK就是Java APIC.可利用jar选项运行.jar文件D.能被Appletviewer成功运行的javaclass文件必须有main()方法答案:BCD三.判断题每题分值:分是否题目乱序:是是否选项乱序:是是否可回溯:是难度:中18.[判断]Java程序中的起始类名称必须与存放该类的文件名相同。
《面向对象程序设计》教案

《面向对象程序设计》教案一、教案简介本教案旨在帮助学生掌握面向对象程序设计的基本概念、原理和方法,培养学生的编程能力和软件开发思维。
通过本课程的学习,学生将能够熟练运用面向对象的编程语言,如Java或C++,进行软件开发和设计。
二、教学目标1. 了解面向对象程序设计的基本概念,如类、对象、封装、继承和多态等。
2. 掌握面向对象程序设计的基本原则,如单一职责原则、开闭原则、里氏替换原则等。
3. 学会使用面向对象的编程语言进行程序设计和开发。
4. 培养学生的软件开发思维和团队协作能力。
三、教学内容1. 面向对象程序设计的基本概念1.1 类与对象1.2 封装1.3 继承1.4 多态2. 面向对象程序设计的基本原则2.1 单一职责原则2.2 开闭原则2.3 里氏替换原则2.4 接口隔离原则2.5 依赖倒置原则3. 面向对象的编程语言3.1 Java3.2 C++4. 面向对象的设计模式4.1 创建型模式4.2 结构型模式4.3 行为型模式四、教学方法1. 讲授法:讲解面向对象程序设计的基本概念、原理和编程方法。
2. 案例分析法:分析实际项目中的面向对象设计案例,让学生理解并掌握面向对象的设计思想。
3. 实践操作法:让学生通过编写代码,亲身体验面向对象程序设计的流程和方法。
4. 小组讨论法:分组进行讨论,培养学生的团队协作能力和解决问题的能力。
五、教学评价1. 课堂参与度:评估学生在课堂上的发言和提问情况,了解学生的学习兴趣和积极性。
2. 课后作业:布置相关的编程作业,检查学生对面向对象程序设计知识的掌握程度。
3. 项目实践:评估学生在团队项目中的表现,包括代码质量、设计思路和团队协作能力。
4. 期末考试:全面测试学生对面向对象程序设计知识的掌握情况。
六、教学资源1. 教材:推荐《Java面向对象程序设计》、《C++ Primer》等经典教材。
2. 在线资源:提供相关的在线教程、视频课程和编程练习平台,如慕课网、Coursera、LeetCode等。
张孝祥正在整理Java就业面试题大全

3. 笔试题之Java根底局部根底局部的顺序:根本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io 的语法,虚拟机方面的语法,其他。
有些题来自网上搜集整理,有些题来自传智播客学员面试后的反应,说真的,少数一些网上的面试题,我真疑心其是否还有存在价值!1、一个".java"源文件中是否可以包括多个类〔不是内部类〕?有什么限制?可以有多个类,但只能有一个public的类,并且public的类名必须及文件名相一致。
2、Java有没有goto?java中的保存字,现在没有在java中使用。
3、说说&和&&的区别。
&和&&都可以用作逻辑及的运算符,表示逻辑及〔and〕,当运算符两边的表达式的结果都为true时,整个运算结果才为true,否那么,只要有一方为false,那么结果为false。
&&还具有短路的功能,即如果第一个表达式为false,那么不再计算第二个表达式,例如,对于if(str != null && !str.equals(“〞))表达式,当str为null时,后面的表达式不会执行,所以不会出现NullPointerException 如果将&&改为&,那么会抛出NullPointerException异常。
If(x==33 & ++y>0) y会增长,If(x==33 && ++y>0)不会增长&还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位及操作,我们通常使用0x0f来及一个整数进展&运算,来获取该整数的最低4个bit位,例如,0x31 & 0x0f的结果为0x01。
备注:这道题先说两者的共同点,再说出&&和&的特殊之处,并列举一些经典的例子来说明自己理解透彻深入、实际经历丰富。
孙鑫老师——JAVA课件PPT整理

我们为什么要用Java
多线程的 Java语言的一个重要特性就是在语言级支持
多线程的程序设计。多线程就好像我们做一张桌 子,如果你一个人完成这张桌子—就好像单线程, 那么你需要先做桌面,做完桌面后,再做4个桌子 腿,如果现在有5个人来做桌子—在程序中开辟5 个线程,其中1个人做桌面,另外4个人分别做4个 桌子腿,那么这两种方式效率的高低,相信大家 都能区分出来。
Java解释器相当于运行Java字节码的“CPU”,但该“CPU”不是通 过硬件实现的,而是用软件实现的。Java解释器实际上就是特定的平 台下的一个应用程序。只要实现了特定平台下的解释器程序,Java字 节码就能通过解释器程序在该平台下运行,这是Java跨平台的根本。 当前,并不是在所有的平台下都有相应Java解释器程序,这也是Java并 不能在所有的平台下都能运行的原因,它只能在已实现了Java解释器 程序的平台下运行。
健壮的 Java致力于检查程序在编译和运行时的
错误。Java也是一种强类型的语言,其类型 检查比C++还要严格。类型检查帮助我们检 查出许多开发早期出现的错误。Java自己负 责内存管理,提供了垃圾内存回收机制, 有效的避免了C++中最头疼的内存泄漏问题。
Download:
Java跨平台的原理
Java源文件的编译过程
Java应用程序的开发周期包括编译、下载、解释和执 行几个部分。Java编译程序将Java源程序翻译为JVM可执行 代码—字节码。这一编译过程同C/C++的编译有些不同。 当C编译器编译生成一个对象的代码时,该代码是为在某 一特定硬件平台运行而产生的。因此,在编译过程中,编 译程序通过查表将所有对符号的引用转换为特定的内存偏 移量,以保证程序运行。Java编译器却不将对变量和方法 的引用编译为数值引用,也不确定程序执行过程中的内存 布局,而是将这些符号引用信息保留在字节码中,由解释 器在运行过程中创建内存布局,然后再通过查表来确定一 个方法所在的地址。这样就有效的保证了Java的可移植性 和安全性。
Java IO详细教程

Java I/O总结∙从new BufferedReader(new InputStreamReader(conn.getInputStream()))想到的∙Java I/O总结——OutputStream∙Java I/O总结——Reader∙Java I/O总结——Writer∙Java I/O总结——补充说明从new BufferedReader(new InputStreamReader(conn.getInputStream()))想到的从new BufferedReader(new InputStreamReader(conn.getInputStream()))想到的?晚上睡在床上,这一小段代码在我的脑海里不断浮现,因为它 看上去有些相似(在设计模式中的看到过类似),但是实在想不起与那个模式相似了?翻开设计模式书,已经好久没有看到过本书了,说实话对这本书中的大多数还不是很了解,但是此刻看到能让我想到了,说明这个模式给我留下了深刻的影 响。
翻开书找了半天,我一直以为是Strategy,后来看了下不是的,从头看到尾,终于找到了Decorator(装饰)。
把这个设计模式又仔细读了一 遍,在这里与大家分享。
设计意图动态地给一个对象添加一些额外的职责,就增加功能来说,Decorator模式相比较生产子类更为灵活。
设计动机有时候我们希望给某个对象增加而不是整个类增加一些功能,例如,给一个图像界面工具箱允许你对人员一个用户界面的组件添加一些特性,比如说边框,或者窗口滚动。
使用继承机制是添加功能的一种有效途径,从其他类继承过来的边框特性可以被多个子类的实例所实现。
但是这种方法不够灵活,因为边框的选择是静态的,用户不能控制对组件加边框的方式和时机。
一种较为灵活的方式是将组件嵌入另外一个对象中,由这个对象添加边框,我们称这个嵌入的对象为装饰。
结构代码部分我们就不详细说明,如下图所示:这张图当时好象是我学习设计模式中,看的最清楚的一张(难得啊,设计模式中的那么多图,很多当时看的时候都不是很明白),当然这张图不是我最在意的。
JAVA语言与面向对象程序设计期末复习题

JAVA语言与面向对象程序设计期末复习题2011年上(一)单项选择题(二) 1.对象是构成现实世界的一个独立单位,它具有自己的静态特征和()特征。
A. 颜色B. 动态C. 状态D. 重量2.使用JDK编译ja v a程序时使用的命令是()。
A. javaB. javacC. appletviewerD. javadoc3.在Java程序中包含主方法的类被称为主类,主方法的访问控制修饰符()。
A. privateB. protectedC. publicD. static4.在类的定义中,若需要把一个标识符定义为常量,则使用的修饰符为()。
A. constB. finalC. staticD. class5.在程序中声明包的语句关键字为()。
A. volatileB. packC. importD. package6.在一个方法的方法头(声明)中向调用它的上一层方法抛出异常的子句关键字为()。
A. catchB. throwC. throwsD. finally7.在类定义首部的语法格式中,()不能作为其中的修饰符。
A. publicB. protectdC. extendsD. abstract8.下列哪个类不是异常类的父类?()。
A. ErrorB. ThrowableC. ExceptionD. Object9.下面的关键字()与异常处理无关。
A. throwB. throwsC. importD. finally10.在读字节文件Employee.dat 时,使用该文件作为参数的类是()。
A. BufferedReaderB. DataInputStreamC. DataOutputStreamD. FileInputStream(二)填空题1.Java类库也称为Java API,它是Application Programming Interface的缩写,中文含义为________。
2.Java语言中用于修饰类的成员具有保护或私有访问属性的关键字分别为________和________。
java心得总结7篇
java心得总结7篇(经典版)编制人:__________________审核人:__________________审批人:__________________编制单位:__________________编制时间:____年____月____日序言下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!并且,本店铺为大家提供各种类型的经典范文,如演讲致辞、策划方案、心得体会、条据文书、合同协议、应急预案、规章制度、教学资料、作文大全、其他范文等等,想了解不同范文格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!Moreover, our store provides various types of classic sample essays for everyone, such as speeches, planning plans, reflections, legal documents, contract agreements, emergency plans, rules and regulations, teaching materials, essay summaries, and other sample essays. If you want to learn about different sample essay formats and writing methods, please stay tuned!java心得总结7篇写心得体会可以帮助我们更好地反思自己的行为和决策,心得体会是我们对过去经历的回顾,可以帮助我们更好地规划未来的发展方向,本店铺今天就为您带来了java心得总结7篇,相信一定会对你有所帮助。
java实训心得体会(精选17篇)
java实训心得体会(精选17篇)(经典版)编制人:__________________审核人:__________________审批人:__________________编制单位:__________________编制时间:____年____月____日序言下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!并且,本店铺为大家提供各种类型的经典范文,如总结计划、党团报告、合同协议、策划方案、演讲致辞、规章制度、条据文书、教学资料、作文大全、其他范文等等,想了解不同范文格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!Moreover, our store provides various types of classic sample essays, such as summary plans, party and youth league reports, contract agreements, planning plans, speeches, rules and regulations, doctrinal documents, teaching materials, complete essays, and other sample essays. If you would like to learn about different sample formats and writing methods, please stay tuned!java实训心得体会(精选17篇)java实训心得体会(精选17篇)我们心里有一些收获后,常常可以将它们写成一篇心得体会,通过写心得体会,可以帮助我们总结积累经验。
Java高级面试题整理(附答案)
String 作为数据类型,传输对象和中间人角色的重要性和流行性也使这个问题在 Java 面试中很常见。
A foo() /\ /\ foo() B C foo() \/ \/ D foo()
即使我们删除钻石的顶部 A 类并允许多重继承,我们也将看到这个问题含糊性的一面。如果你把这个理由告诉面试官,他会问为什么 C++ 可以支持多重继承而 Java不行。嗯,在这种情况下,我会试着向他解释我下面给出的第二个原因,它不是因为技术难度, 而是更多的可维护 和更清晰的设计是驱动因素, 虽然这只能由 Java 言语设计师确认,我们只是推测。维基百科链接有一些很好的解释,说明在使用多重继
1)第一个原因是围绕钻石 形继承问题产生的歧义,考虑一个类 A 有 foo() 方法, 然后 B 和 C 派生自 A, 并且有自己的 foo() 实现,现在 D 类使 用多个继承派生自 B 和C,如果我们只引用 foo(), 编译器将无法决定它应该调用哪个 foo()。这也称为 Diamond 问题,因为这个继承方案的 结构类似于菱形,见下图:
为什么等待和通知需要从同步块或方法中调用, 以及 Java 中的 wait,sleep 和 yield 方法之间的差异,如果你还没有读过,你会觉得有趣。 为何 wait,notify 和 notifyAll 属于 Object 类? 为什么它们不应该在 Thread 类中? 以下是我认为有意义的一些想法:
2. 为什么 Java中不支持多重继承?
超全java面试题库-第一篇(Java基础篇)
第一篇Java基础面试题1.说下面向对象四大特性封装性、继承性、多态性、抽象性。
2.Java语言有些特点简单性:Java没有像C++那样的指针,运算符重载,类的多继承。
并且实现了垃圾的自动回收,简化了程序开发者对于内存管理的工作。
面像对象:对象是指封装数据和操作方法的程序实体。
Java提供了简单的类机制以及动态接口。
表现形式是封装继承多态。
分布式:它有一套很齐全的通信及相关功能的程序库,可以处理TCP/IP协议也可以处理其他的协议。
健壮性:用Java编写的程序能在多种情况下稳定运行。
Java在运行和编译的时候都会对可能出现的错误进行检查验证。
通过集成异常处理机制,在编译时提示可能出现的但是未被处理的异常,以防止系统的崩溃。
可移植性:Java是与平台无关的,Java类库中也实现了与平台无关的接口,这样类库也是可以移植的。
多线程机制:Java具有多线程机制,使得程序能够并行执行,同步机制也保证了数据的共享,线程也有优先级别,有利于使用线程级别控制不同的任务。
3.什么是Java程序的主类?应用程序和小程序的主类有何不同?一个程序中可以有多个类,但只能有一个主类。
在Java应用程序中,这个类是指包含main ()方法的类。
而在Java小程序中,这个主类是一个继承子系统类JApplet或Applet的子类。
应用程序的主类不一定要求是public类但小程序的主类必须是public类。
主类是Java程序执行的入口点。
简单说应用程序是从主线程启动(也就是 main() 方法)。
applet 小程序没有 main() 方法,主要是嵌在浏览器页面上运行(调用init()或者run()来启动),嵌入浏览器这点跟 flash 的小游戏类似。
4.访问修饰符public,private,protected,以及不写(默认)时的区别?类的成员不写访问修饰时默认为default。
默认对于同一个包中的其他类相当于公开(publi c),对于不是同一个包中的其他类相当于私有(private)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、基础部分 对象: 一切都是对象 三个特性 封装 继承 多态
类: 实际上是表示一个客观世界上某类群体的一些基本特征的抽象
类的组成 :类是由方法和属性组成 Person name :String age : int +tell() : void 类图的表示
对象的创建: 类名 对象名称 = null; 对象名称 = new 类名(); 类名 对象名称 = new 类名();
对象的实例化: 在栈内存中声明 使用new关键字在堆内存中开辟空间 实例化 在栈内存中保存的是引用地址 对象中的属性内容的默认值 字符串默认为null 整数的默认值是0 对象使用前必须要实例化 不然会出现NullPointException异常
成员变量:成员变量就是全局变量 封装性 : 设置私有属性 并设置setter和getter方法 封装的属性只能通过setter和getter方法设置和取得。
person - name : String - age :int +method() :void +getName() :void +setName(String n) :void +getAge() :void +setAge(int a) :void
封装性的类图
构造方法: Class 类名称{ 访问权限 类名称(类型 1 参数 1,类型2 ,参数2){ 程序语句; „//构造方法没有返回值 } } 构造方法的名称必须与类名一致 构造方法的声明处不能用任何返回值类型的声明 不能在构造方法中使用return这个关键字 在java中如果一个类没有一个明确的构造方法是,则在编译时会直接生成一个无惨的、什么都不做的构造方法,但是如果程序中明确声明了一个构造方法,那么程序在编译时不会生成默认构造方法 构造方法是可以被重载的,只要构造方法参数类型和参数个数不同即可实现重载
匿名对象: 匿名对象时没有明确给出名称的对象,一般匿名对象只是用一次,匿名对象只在对内存中开辟空间,而不存在栈内存的引用
属性初始化: 成员变量自动初始化
局部变量初始化: 局部变量手动初始化 局部变量可以不立即初始化,但是在使用之前必须要初始化
String: String可以直接以赋值的方式进行操作 String内容比较:可以通过“==”这种比较是比较内容在栈内存的的地址值 用equals比较具体内容 字符串都是String类的匿名对象,String类有两种实例化方式,直接赋值的方式 如果一个字符串已经被一个名称所引用,则在以后再有相同的字符串声明时就不会再重新开辟空间,而继续使用已经存在的内存,但是使用new方关键字实例化 每次都必须开辟内存空间,会产生垃圾空间 被垃圾回收器回收 String类一个重要的特性,就是一个字符串一旦声明,内容就不可改变
String类中的常用方法 1 Public String (char[] value) 构造 直接将一个字符数组变成一个字符串 2 Public String(char[] value,int offset,int count) 构造 将一个指定范围的字符数组变成字符串 3 Public String(byte[] bytes) 构造 将一个byte数组全部变为字符串 4 Public char[] toCharArray() 普通 将一个字符串变为字符数组 5 Public char charAt(index) 普通 从一个字符串中取出制定位置的字符 6 Public byte[] getBytes() 普通 将一个字符串变为byte数组 7 Public int length() 普通 取得字符串长度 8 Public int indexOf(String str) 普通 从头开始查找指定的字符串位置,找不到返回-1 9 Public int intdexOf(String str,int FromIndex) 普通 从指定位置开始查找指定的字符串位置 10 Public String trim() 普通 清楚左右两端的空格 11 Public boolean startsWith(String prefix) 普通 判断是否以指定的字符串开头 12 Public boolean endsWith(String suffix) 普通 判断是否以指定的字符串结尾 13 public String replaceAll(String regex,String replacement) 普通 字符串替换(*)
this: This调用的是本类中的方法,还有其他的作用 *表示类中的属性 *可以使用this调用本类的构造方法 *this表示当前对象 private int age; public Person(String name,int age){ this.name = name; this.age = age; } public String getInfo(){ return "姓名 :" + name + ",年龄 :" + age; } } public class Demo { public static void main(String args[]) { Person per1 = new Person("dga" ,22); System.out.println(per1.getInfo()); } } this.方法()调用本类中的方法,this.属性调用本类中的属性 this()调用本类中的构造方法 this() 调用构造方法时,由于构造方法是在实例化对象时被自动调用,只有构造方法是被优先调用的,所以用this调用构造方法只能放在构造方法的首行,使用this调用构造方法一定要留个出口
static: 使用static声明属性 成为静态属性 Static 也称作类方法,可以由类的名称直接调用 class Person{ private String name; private int age; private static String country = "A城"; public Person(String name,int age){ this.name = name; this.age = age; } public static void setCountry(String c){ country = c; } public static String getCountry(){ return country; } public void info(){ // 得到信息 System.out.println("姓名:" + this.name + ",年龄:" + this.age + ",城市:" + country) ; } } public class Demo { public static void main(String args[]) { Person per1 = new Person("张三" ,22); Person per2 = new Person("李四" ,23); Person per3 = new Person("王五" ,25); System.out.println("----------------修改之前------------------"); per1.info(); per2.info(); per3.info(); System.out.println("----------------修改之后------------------"); Person.setCountry("B城"); per1.info(); per2.info(); per3.info(); } } 非static声明的方法可以去调用static声明的属性和方法,但是static声明的方法是不能调用非static类型声明的属性和方法,总之,static是不能调用任何非static的内容的,static类型的方法在对象未被实例化的时候就可以调用。 static:①可修饰变量(属性);②可修饰方法;③可修饰代码块。 static的基本规则 1.类中的静态方法不允许调用非静态的属性和方法,只可以调用静态的属性和方法 2.可以用类名直接调用静态类中的属性和方法 3.静态方法中不允许出现this和super 4.静态方法不能被非静态方法覆盖 5.构造方法不允许声明static 6.静态变量为类变量,可以直接调 7.非静态变量为实例变量,通过实例调用
Static是所有对象共享的属性,可以利用static属性统计一个类到底有多少个实例化对象 class A { private static int count = 0; public A(){ count++; System.out.println("产生了" + count + "个对象"); } } public class Demo{ public static void main(String[] args){ new A(); new A(); new A();; } }
main方法 public 表示此方法可以被外部调用 Static 表示此方法可以由类名直接调用 Void 主方法是程序的起点,所以不需要任何的返回值 Main 系统默认找到main String args[] 表示运行时的参数 使用main方法可以验证参数传递 class Demo { public static void main(String[] args){ if(args.length < 3) { System.out.println("输入参数的个数不足3个,退出程序"); System.exit(-1); } for (int i =0;iSystem.out.println("第" +(i+1) + "个参数:" + args[i]); } } } 执行命令:java Demo one two three
final(全局 局部 参数) final修饰的方法不能被重写,final修饰的变量不能被修改,使用public static final可以声明一个全局常量 如果在父类中有final定义的方法,那么在子类中继承同一个方法。 如果一个方法前有修饰词private或static,则系统会自动在前面加上final。即private和static方法默认均为final方法。 final并不涉及继承,继承取决于类的修饰符是否为private、default、protected还是public。也就是说,是否继承取决于这个方法对于子类是否可见。 final的基本规则 final类不能被继承 final成员变量只允许赋值一次,且只能通过构造方法里赋值 final局部变量即为常量,只能赋值一次 final方法不允许被子类覆盖 final一般用于标记那些通用性的功能不能随意修改 Final变量的命名规则 声明的变量全部都要大写