仓酷云

标题: JAVA网站制作之Java中心编程:卷I――进修小记 [打印本页]

作者: 兰色精灵    时间: 2015-1-18 11:44
标题: JAVA网站制作之Java中心编程:卷I――进修小记
C++编译的是本地码,优点是启动快,而且可以精确控制资源因此可以开发很高效的程序.缺点是编程麻烦,而且容易留下安全隐患.跨平台靠源代码在各个平台间分别编译(一处编写到处编译)编程《CoreJava2VolumeI:Fundamentals》(原书第5版)
机器产业出书社

之前看过的关于Java的工具都很琐屑,感到有需要从头进修一下Java的一些基本常识,特记。

第1章Java简介

1、我们以为Java的各种上风在它使用于新型设备或新使用范畴中才干表现,而不是用它来重写那些已存在的使用程序。
///所谓各领风流十来年,大抵就是这个意义;同时,平常地对照言语之间的好坏是没成心义的

2、复杂的说,面向对象的程序计划是把重点放在数据(即是对象)和对象接口上的一个编程手艺。以木工为例,一个
“面向对象”的木工起首会体贴他要打造的椅子,然后才是打造这椅子的工具;而一个“非面向对象”的木工会起首思索他的工具。
///只要头脑提上往,才能够改良办事的体例。可骇的是:常常在利用着面向对象的工具,却利用着面向历程的头脑

第2章Java编程情况

1、一个复杂而风趣的界面程序,显现.gif图象

///ImageViewer.java
importjava.awt.*;
importjava.awt.event.*;
importjava.awt.image.*;
importjava.io.*;
importjavax.swing.*;

publicclassImageViewer{
publicstaticvoidmain(String[]args){
JFrameframe=newImageViewerFrame();
frame.setTitle("ImageViewer");
intw=320,h=400;
DimensionScreenSize=Toolkit.getDefaultToolkit().getScreenSize();
frame.setBounds((int)((ScreenSize.width-w)/2),(int)((ScreenSize.height-h)/2),w,h);
frame.setSize(w,h);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();
}
}

classImageViewerFrameextendsJFrame{
publicImageViewerFrame(){
//setmenu
JMenuBarmenuBar=newJMenuBar();
setJMenuBar(menuBar);
JMenumenu=newJMenu("File");
menuBar.add(menu);
JMenuItemopenItem=newJMenuItem("Open");
menu.add(openItem);
openItem.addActionListener(newFileOpenListener());
JMenuItemexitItem=newJMenuItem("Exit");
menu.add(exitItem);
exitItem.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEventevent){System.exit(0);}
});

//usealabeltodisplaytheiamges
label=newJLabel();
ContainercontentPane=getContentPane();
contentPane.add(label,"Center");
}

privateclassFileOpenListenerimplementsActionListener{
publicvoidactionPerformed(ActionEventevt){
//setupfilechooser
JFileChooserchooser=newJFileChooser();
chooser.setCurrentDirectory(newFile("."));
//acceptallfilesendingwith.gif
chooser.setFileFilter(newjavax.swing.filechooser.FileFilter(){
publicbooleanaccept(Filef){
returnf.getName().toLowerCase().endsWith(".gif")||f.isDirectory();
}
publicStringgetDescription(){
return"GIFImages";
}
});
//showfilechooserdialog
intr=chooser.showOpenDialog(ImageViewerFrame.this);
//ifimagefileaccepted,setitasiconofthelabel
//只要到此时,才要完成我们的目标:显现图片,后面满是一些筹办事情!
if(r==JFileChooser.APPROVE_OPTION){
Stringname=chooser.getSelectedFile().getPath();
label.setIcon(newImageIcon(name));
}
}
}

privateJLabellabel;

}


第3章Java基础编程布局
///略

第4章对象和类
1、OOP中的对象有三个次要特征:
A)对象的举动
B)对象的形态
C)对象的标识符
///对照好了解

2、类之间的干系
A)依附USES-A
B)聚合HAS-A
C)承继IS-A

3、注重:我们接纳的作风是类的办法在前,字段在后,如许做大概会在某种水平上勉励起首体贴类的接口,儿不是体贴其
完成。
///一向对照烦闷为何字段界说在后,本来云云!

4、静态字段和办法///此处的字段是指类外部的属性
A)假如把一个字段界说为static,那末,一个类中只要一个这类字段。
///我的了解:假如用static界说一个类的字段,那末这个字段属于类,而不是属于对象。一切的对象将操纵一个地点。
B)静态变量很少见,静态常量倒是很广泛的
如:publicclassMath{
//...
publicstaticfinaldoublePI=3.14159265358979323846;
//...
}
publicclassSystem{
//...
publicstaticfinalPrintStreamout=...;
}
C)静态办法
我们能够把静态办法看做是没有this参数的办法
我们能够在以下两种情形下利用静态办法:
(1)当一个办法不必要会见对象形态时;
(2)当一个办法只必要会见类中的静态办法时
静态办法另有另外一种罕见的用处:
如:NumberFormat.getNumberInstance()
这类办法被称作工场办法factorymethod

5、java程序计划言语老是利用传值挪用。这意味着办法失掉是一切参数值的一个拷贝。特别是,办法不克不及修正传送给它的
任何参数变量内容。
///第一次次要到这点,可是,随后,作者的确如许写的:

一个办法不成能改动基础范例的参数,而关于对象参数来讲则分歧。我们能够很简单地――实践上长短常广泛――完成改动一个
对象参数形态的办法。缘故原由很复杂。办法失掉对对象援用的一个拷贝,而原对象变量和此拷贝都指向统一个对象。
///Employee.java
publicclassEmployee{
Stringname;
doublesalary;

publicEmployee(Stringname){
this.name=name;
this.salary=1000.0;
}

publicdoublegetSalary(){
returnsalary;
}

publicstaticvoidtriple(Employeeemp){
emp.salary*=3;
}

publicstaticvoidmain(String[]args){
Employeefeng=newEmployee("Feng");
Employeeyu=newEmployee("Yu");
triple(feng);//workcorrectly!
System.out.println("Fengssalary:"+feng.getSalary());
System.out.println("Yussalary:"+yu.getSalary());
}
}
///可是,随后作者又说:

有些程序员宣称Java程序计划言语对对象利用援用挪用。但是这类了解是毛病的。经由过程一个例子来讲明:
///注重:例子中的谁人swap()并没有如预期的那样起感化
publicclassEmployee{
Stringname;

publicEmployee(Stringname){
this.name=name;
}

publicStringgetName(){
returnname;
}

publicstaticvoidswap(Employeex,Employeey){
Employeet=x;
x=y;
y=t;
}

publicstaticvoidmain(String[]args){
Employeefeng=newEmployee("Feng");
Employeeyu=newEmployee("Yu");
swap(feng,yu);//cannotwork
System.out.println(feng.getName());
System.out.println(yu.getName());
}
}

///关于办法参数,作者归结以下:
A)办法不克不及修正基础范例的参数
B)办法能够改动对象参数的形态
C)办法不克不及使一个对象参数指向一个新的对象

6、机关函数
当类被第一次加载的时分,举行静态初始化。静态字段被初始化为0,false或null,除非显式的赋值。一切静态
字段初始化语句或初始化块依照在类声明中呈现的序次顺次被实行。
上面是一个没有利用main办法的程序
///Hello.java
publicclassHello{
static{
System.out.println("HelloWorld!");
System.exit(0);
}
}


7、文档正文
正文以/**开首,*/停止,包括标签(@author,@param,@see等)和自在文本(可包括HTML标志)
类正文:一样平常放到放到import语句以后,在类界说之前

8、类计划的技能
1)永久坚持数据的公有///这必要从有用动身,而不是从完成体例动身
2)永久初始化数据///不要依托默许值
3)不要在一个类中利用太多基础范例
///对照好了解,用Address类来取代Employee类中的上面字段:
privateStringprovince;
privateStringcity;
privateStringstreet;
privateintzip;
4)不是一切的字段都必要本人的字段会见器和调治器SetP()GetP()
5)用尺度情势对类界说:public,protected,private;每部分:实例办法,静态办法,实例字段,静态字段
6)把有太多职责的类分化
7)使类和办法的名字反应它们的职责



第5章承继
1、写了一个承继实例:
EMPLOYEE的薪水只是基础人为;MANAGER的薪水为基础人为+奖金
//ManagerT.java

classEmployee{
publicEmployee(Stringname){
this.name=name;
}
publicdoublegetSalary(){
returnbasicSalary;
}
publicvoidshowInfo(){
System.out.println("name:"+name);
System.out.println("salary:"+getSalary());
}

privateStringname="";
privatedoublebasicSalary=1000.0;
}

classManagerextendsEmployee{
publicManager(Stringname){
super(name);//利用super能够挪用父类
}
publicvoidsetBonus(doubleb){
bonus=b;
}
publicdoublegetSalary(){
setBonus(126.0);
returnsuper.getSalary()+bonus;
}
privatedoublebonus;
}

publicclassManagerT{
publicstaticvoidmain(String[]args){
Employeeemp=newEmployee("feng");
emp.showInfo();
Managerman1=newManager("wu");
man1.showInfo();
Employeeman2=newManager("song");
man2.showInfo();
}
}

2、
final一个类:不成承继;
final一个办法:该办法不成被重载
设置为final有两个缘故原由:A)效力。静态绑定比静态绑定开支要年夜。B)平安。

3、笼统类,abstract界说
为了更明白,划定具有一个或多个笼统办法的类自己必需界说为abstract
在JAVA言语中,笼统办法长短常主要的观点,在“接口”里,会大批的碰到。
///JAVA会见的把持标记小结:
private:只对本类可见;
public:对统统可见;
protected:对本包和子类可见;
[缺省]:对本包可见///团体感到最好不要用缺省

TOBECONTINUED



C#是不行的,比如说美国的航天飞船里就有java开发的程序以上是我的愚见,其实不管那种语言,你学好了,都能找到好的工作,
作者: 再见西城    时间: 2015-1-21 13:39
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
作者: 透明    时间: 2015-1-30 19:25
是一种语言,用以产生「小应用程序(Applet(s))
作者: 小妖女    时间: 2015-2-5 21:30
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
作者: 飘灵儿    时间: 2015-2-10 23:34
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
作者: 因胸联盟    时间: 2015-3-1 17:30
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
作者: 冷月葬花魂    时间: 2015-3-10 21:31
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
作者: 愤怒的大鸟    时间: 2015-3-12 03:50
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
作者: 老尸    时间: 2015-3-17 19:10
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
作者: 谁可相欹    时间: 2015-3-24 21:36
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
作者: 爱飞    时间: 2015-3-25 22:36
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
作者: 不帅    时间: 2015-4-9 23:55
是一种将安全性(Security)列为第一优先考虑的语言
作者: 简单生活    时间: 2015-4-10 12:21
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
作者: 只想知道    时间: 2015-4-16 19:11
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
作者: 小魔女    时间: 2015-4-20 20:54
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
作者: 深爱那片海    时间: 2015-4-24 09:15
是一种为 Internet发展的计算机语言
作者: 莫相离    时间: 2015-4-26 00:11
是一种为 Internet发展的计算机语言
作者: 活着的死人    时间: 2015-4-26 15:49
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
作者: 变相怪杰    时间: 2015-5-11 01:14
是一种语言,用以产生「小应用程序(Applet(s))




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2