
说明:
虽然在语法上可以将Point或Shape定义为接口,但在逻辑上是错误的。
接口是对行为的规范,它不具有对象的特征。抽象类本质是对象的抽象,它具有对象的典型特征,但也有对子类行为的规范。无论是坐标点Point还是形状Shape,它们都具有类的本质特征,不应该将它们定义为接口(虽然语法上并没有错,但在理解上令人费解)。
矩形、圆、椭圆都继承自抽象的形状类,并都包含坐标原点。这样就很好地解决了5个类的关联。另一方面,实际上在几乎所有面向程序设计语言中,并没有圆类,只有椭圆类,因为圆就是一种特殊的椭圆(当a=b时,椭圆就是一种特殊的圆)。
class Point{
protected int x;
protected int y;
public Point(){
}
public Point(int x, int y){
thisx = x;
thisy = y;
}
//返回当前点的横坐标
public int getX(){
return x;
}
//返回当前点的纵坐标
public int getY(){
return y;
}
}
//抽象的形状类
abstract class Shape{
abstract double area(); //抽象的求面积方法
abstract double girth(); //抽象的求周长方法
abstract String getName(); //抽象的返回形状名称的方法
}
//矩形类
class Rectangle extends Shape{
protected Point center; //矩形的中心点坐标
protected double width; //矩形的宽
protected double height; //矩形的高
public Rectangle(){
}
public Rectangle(Point center, double width, double height){
thiscenter = center;
thiswidth = width;
thisheight = height;
}
//返回矩形的面积
public double area() {
return width height;
}
//返回矩形的周长
public double girth() {
return 2 (width + height);
}
//返回矩形的中心点坐标
public Point getCenter(){
return center;
}
//返回当前形状的名称
public String getName() {
return "Rectangle";
}
}
//圆类
class Circle extends Shape{
protected Point center; //圆的中心点坐标
protected double radius; //圆的半径
public Circle(){
}
public Circle(Point center, double radius){
thiscenter = center;
thisradius = radius;
}
//返回圆的面积
public double area() {
return MathPI radius radius;
}
//返回圆的周长
public double girth() {
return 2 MathPI radius;
}
//返回圆的中心点坐标
public Point getCenter(){
return center;
}
//返回当前形状的名称
public String getName() {
return "Circle";
}
}
//椭圆类
class Ellipse extends Shape{
protected Point center; //椭圆的中心点坐标
protected double a; //椭圆的长半轴的长
protected double b; //椭圆的短半轴的长
public Ellipse(){
}
public Ellipse(Point center, double a, double b){
thiscenter = center;
thisa = a;
thisb = b;
}
//返回椭圆的面积
public double area() {
return MathPI a b;
}
//返回椭圆的周长
public double girth() {
return 2 MathPI Mathsqrt((a a + b b) / 2);
}
//返回椭圆的中心点坐标
public Point getCenter(){
return thiscenter;
}
//返回当前形状的名称
public String getName() {
return "Ellipse";
}
}
//测试类
public class Test {
public static void main(String[] args) {
Point center = new Point(100, 100); //定义形状的中心点坐标
Shape s; //定义抽象基类对象
s = new Rectangle(center, 3, 4); //用子类实例化抽象基类对象
Systemoutprintln(sgetName() + " : "); //实现了动态多态
Systemoutprintln("Center : " + ((Rectangle)s)getCenter()getX() + ", " + ((Rectangle)s)getCenter()getY());
Systemoutprintln("Area : " + sarea()); //实现了动态多态
Systemoutprintln("Girth : " + sgirth()); //实现了动态多态
Systemoutprintln();
s = new Circle(center, 2); //用子类实例化抽象基类对象
Systemoutprintln(sgetName() + " : ");
Systemoutprintln("Center : " + ((Circle)s)getCenter()getX() + ", " + ((Circle)s)getCenter()getY());
Systemoutprintln("Area : " + sarea());
Systemoutprintln("Girth : " + sgirth());
Systemoutprintln();
s = new Ellipse(center, 5, 3); //用子类实例化抽象基类对象
Systemoutprintln(sgetName() + " : ");
Systemoutprintln("Center : " + ((Ellipse)s)getCenter()getX() + ", " + ((Ellipse)s)getCenter()getY());
Systemoutprintln("Area : " + sarea());
Systemoutprintln("Girth : " + sgirth());
}
}
java自学的话非常难,因为java需要学习的东西很多而且很难,如果你没掌握学习java的方法的话,可能1-2年都只能入门,如果你掌握java的学习的方法的话,半年就能学会java。
…………………………………………
看你问的问题,应该是对java很感兴趣,其实你可以自学java。关于如何学习java,我刚才看到一篇很不错的文章,是一个农民工介绍自己如何自学java,并找到Java的工作,里面介绍了他的学习方法和学习过程,希望对你有帮助。
我是一名地地道道的农民工,生活在经济落后的农村,有一个哥哥和一个弟弟,父母都是地道的农民,日出而作,日落而息,我从小到大学习一直很好,从小学到高一都,成绩在全级一直名列前茅,这样我也顺利了考上省的重点高中,然而,每个学期开学是家里最为难的时候,每次交学费都让父母发愁许久,家里为了给我筹钱读书,都借了不少钱,才让我读上高中。我知道我读到高中家里已经欠了好多债,为了减轻家里的负担,我选择了退学。
2009年我高一退学,为了给家里还债,干过建筑工地的小工,搞过塑料制品加工,送水工等等。很工资都很低,一个月也就1000多,加上加班费一个月能拿2000多一点,我每个月都向家里寄回800-1000元,到了2011年末,一次偶然的机会我接触了Java,听说Java的前景挺不错,工资相对于我一个农民工来说简直是天文数字,于是我在新华书店买了几本Java的书,尽管白天辛苦工作,晚上回来还是坚持看书,但有于基础太差很多都很不明白,但还是坚持看,一有看1-2个小时Java的书,看着看着许多基础都慢慢的学会了,但那些比较难的还是看不懂,后来还买了有些关于框架的书,还是看不懂,这样断断续续的持续了半年多,觉得自己Java的基础都差不多懂了,但框架还是看不懂,还有最缺的项目经验,看了很多招聘Java程序员的简介都要项目经验,相对我一个农民工来连框架都弄不明白,想找一份Java工作对我来说简直是奢侈。我只想学Java,并不敢想以后能从事Java的工作。
有一次,在百度上看到一篇让我很鼓舞的文章,是一个Java高手介绍在没有基础的朋友怎么自学入门Java,文章写的很好,包含了如何学习,该怎么学习,他提到一个方法就是看视频,因为看书实在太枯燥和费解的,不少是我们也看不懂,这点我真的很认同,我自己看书都看了很久才学会基础。曾经有想过参加培训,但是上万元的培训费让我望而却步,我工资这么低,每个月还有向家里汇钱,加上城市消费比较高,虽然每个月只有几百剩下,但是相对于上万万学费和四个月的吃住费用逼我连想不敢想。 于是我决定看视频,我就去搜索Java的视频,虽然我零星的找到一些Java的视频,但是都不系统。最重要连项目都没有。后来我找到一份很好的视频,是IT学习联盟这个网站一套视频叫<<零基础Java就业班>>(喜欢《零基础Java就业班》的可以复制 tcn/8sx5z6L 粘贴浏览器地址栏按回车键即打开)的教程还不错,很完整。还赠送11个顶级企业项目。价格很合理,于是我买下来。
于是开始了我的自学Java的路,收到光盘后,我就开始学习,刚开始学习还不错,是从零基础教起,老师幽默风趣而又轻松的课堂教课,使我发现原来学习JAVA并不是一件很难的事情。因为我本来基础还不错,前面的基础看一篇我就过去了,到了框架,我觉不又不是很难,可能老师太牛了,他能把复杂的问题讲的比较通俗易懂,有些难点的地方我还是连续看了五六次,把他弄懂。每天下午6点下班后,吃了饭,马上跑回家。看视频,买了几本笔记本。当时,为了编程还花几百元了台二手的台式电脑,配置一般,但编程是足够的。一边看视频,一边记笔记,把重点都记下来,还一边跟着老师敲代码,为了能尽早学会Java。每天都坚持学5-6个小时。经常学到晚上一点多才睡觉。星期六,日不用上班,每天7点多起床,学到晚上11,12点。那段时间特别辛苦,特别累。在学习Java的三个多月里,除了吃饭睡觉工作,剩余的时间都在学习,因为我知道自己的计算机基础不是很好,也没有学过什么计算机,只是学了些Java基础,相对于那些科班的人来说我要比他们付出更多的努力。我只能咬紧牙关,坚持下去,我不能放弃,我要完成我的梦想,我要让我的家人过上好日子。终于三个多月后我把Java教程里的内容和项目都学完了,在学项目的过程中我发现项目特别重要,他能把你学过的知识全部联系起来,能更好的理解你所学的知识。还有学习过程中,动手很重要,要经常跟着老师动手敲,动手吧,跟着做,一行一行的跟着敲,再试着加一些自己的功能,按照自己的思路敲一些代码,收获远比干听大的多。 如果遇到暂时对于一些思路不能理解的,动手写,先写代码,慢慢你就会懂了。这套视频还赠送了11个顶级企业项目,对于我没有任何经验的人来说,这个太重要了,还有在学习项目是提升能力最快的方法。项目能把所有的知识点全都连到一起了,不再是分散的,而是形成一个整体了。那种感觉是仅仅深入钻研知识点而不写真实项目的人所不能体会的。一个项目就是一根绳子可以把大片的知识串到一起。 就这样,我用了两个月也把项目给学完了。其实学完教程差不错就达到就业水平,但是我可能觉得自己学历低还是把那11个顶级企业项目才去找工作。
接着我就到51job疯狂的投简历,因为我的学历问题,初中毕业,说真的,大公司没有人会要我。所以我头的都是民营的小公司,我希望自己的努力有所回报。没有想过几天后,就有面试了,但是第一次面试我失败了,虽然我自认为笔试很好,因为我之前做了准备,但是他们的要求比价严格,需要有一年的项目经验,所以我没有被选中。 后来陆续面试了几加公司,终于功夫不负有心人,我终于面试上了一家民营的企业。公司规模比较小,我的职务是Java程序员。我想我比较幸运,经理看中我的努力,就决定吕勇我,开的工资是3500一个月,虽然我知道在北京3500只能过温饱的生化,但是我想我足够了,比起以前的工资好了些,以后可以多寄些钱回家。我想只要我继续努力。我工资一定会翻倍的。 把本文写出来,希望能让和我一样的没有基础的朋友有信心,其实我们没有自卑,我们不比别人笨,只有我们肯努力,我们一样会成功。
………………………………
java是目前主流的开发语言,程序员不论是大数据、云计算、web前端、后端开发等都需要从java学起,如果你想计入IT高薪行列,建议学java!学java自学的话学习周期因人而异,报班学习较为系统高效,一般0基础的话需要学习4-6个月左右。
java学习内容主要有:
①JAVA编程基础(基础语法、面向对象、和谐特性等)
②WEB应用开发(静态网页制作、Oracle数据库、Java Web开发技术、Linux技术、网站性能与安全、软件工程开发流程、Java Web和谐等)
③企业级框架开发(数据结构与算法、SSH框架、JavaEE和谐等)
④项目实训
互联网行业目前还是最热门的行业之一,学习IT技能之后足够优秀是有机会进入腾讯、阿里、网易等互联网大厂高薪就业的,发展前景非常好,普通人也可以学习。
想要系统学习,你可以考察对比一下开设有相关专业的热门学校,好的学校拥有根据当下企业需求自主研发课程的能力,能够在校期间取得大专或本科学历,中博软件学院、南京课工场、南京北大青鸟等开设相关专业的学校都是不错的,建议实地考察对比一下。
祝你学有所成,望采纳。
JAVA的优点:
1、简单性
2、面向对象
3、分布性
4、编译和解释性
5、稳健性
6、安全性
7、可移植性
8、高性能
9、多线索性
10、动态性
JAVA的缺点:
1、速度比较慢
扩展资料:
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
Java语言是一门随时代快速发展的计算机语言程序,其深刻展示了程序编写的精髓,加上其简明严谨的结构及简洁的语法编写为其将来的发展及维护提供了保障。由于提供了网络应用的支持和多媒体的存取,会推动Internet和企业网络的Web的应用。
另外,为了保持Java的增长和推进Java社区的参与,Sun公司在Java One开发者大会上宣布开放Java核心源代码,以鼓励更多的人参与到Java社团活动中。
来自Java社团和IBM等全球技术合作伙伴两方面的支持,Java技术在创新和社会进步上继续发挥强有力的重要作用,并且随着其程序编写难度的降低使得更多专业人员将精力放置于Java语言的编写与框架结构的设计中。
参考资料:
百度百科-Java
以上就是关于JAVA程序设计相关全部的内容,包括:JAVA程序设计相关、Java程序设计怎么学习、学java以后能做什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)