首页编程java编程java程序设计代码?java程序设计唐大仕pdf

java程序设计代码?java程序设计唐大仕pdf

编程之家2026-06-02659次浏览

老铁们,大家好,相信还有很多朋友对于java程序设计代码和java程序设计唐大仕pdf的相关问题不太懂,没关系,今天就由我来为大家分享分享java程序设计代码以及java程序设计唐大仕pdf的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!

java程序设计代码?java程序设计唐大仕pdf

求一道Java程序设计的代码

我帮你写了绝大部分的代码了,还有一些按钮的具体功能实现的代码,你自己添加了吧。代码如下:

importjava.awt.BorderLayout;

importjavax.swing.*;

importjava.awt.Dimension;

importjava.awt.Rectangle;

importjavax.swing.JCheckBox;

java程序设计代码?java程序设计唐大仕pdf

importjavax.swing.JComboBox;

importjavax.swing.JLabel;

importjavax.swing.JList;

importjavax.swing.JButton;

importjava.awt.Font;

publicclassMyGUIextendsJFrame{

java程序设计代码?java程序设计唐大仕pdf

privatestaticfinallongserialVersionUID=1L;

privateJPaneljContentPane=null;

privateJLabeljLabel=null;

privateJLabeljLabel1=null;

privateJLabeljLabel2=null;

privateJLabeljLabel3=null;

privateJRadioButtonjRadioButton=null;

privateJRadioButtonjRadioButton1=null;

privateJRadioButtonjRadioButton2=null;

privateButtonGroupmybg=newButtonGroup();

privateJCheckBoxjCheckBox=null;

privateJCheckBoxjCheckBox1=null;

privateJComboBoxjComboBox=null;

privateJLabeljLabel4=null;

privateJListjList=null;

privateJButtonjButton=null;

/**

*Thisisthedefaultconstructor

*/

publicMyGUI(){

super();

initialize();

}

/**

*Thismethodinitializesthis

*

*@returnvoid

*/

privatevoidinitialize(){

this.setSize(369,353);

this.setContentPane(getJContentPane());

this.setTitle("JFrame");

this.setVisible(true);

}

/**

*ThismethodinitializesjContentPane

*

*@returnjavax.swing.JPanel

*/

privateJPanelgetJContentPane(){

if(jContentPane==null){

jLabel4=newJLabel();

jLabel4.setBounds(newRectangle(27,237,78,18));

jLabel4.setText("请选择字体:");

jLabel3=newJLabel();

jLabel3.setBounds(newRectangle(27,197,78,18));

jLabel3.setText("请选择字号:");

jLabel2=newJLabel();

jLabel2.setBounds(newRectangle(28,160,78,18));

jLabel2.setText("请选择字行:");

jLabel1=newJLabel();

jLabel1.setBounds(newRectangle(28,120,78,18));

jLabel1.setText("请选择颜色:");

jLabel=newJLabel();

jLabel.setBounds(newRectangle(46,21,256,69));

jLabel.setHorizontalAlignment(SwingConstants.CENTER);

jLabel.setHorizontalTextPosition(SwingConstants.CENTER);

jLabel.setFont(newFont("Dialog",Font.BOLD,12));

jLabel.setText("我们都来学JAVA");

jContentPane=newJPanel();

jContentPane.setLayout(null);

jContentPane.add(jLabel,null);

jContentPane.add(jLabel1,null);

jContentPane.add(jLabel2,null);

jContentPane.add(jLabel3,null);

jContentPane.add(getJRadioButton(),null);

jContentPane.add(getJRadioButton2(),null);

jContentPane.add(getJRadioButton1(),null);

jContentPane.add(getJCheckBox(),null);

jContentPane.add(getJCheckBox1(),null);

jContentPane.add(getJComboBox(),null);

jContentPane.add(jLabel4,null);

jContentPane.add(getJList(),null);

jContentPane.add(getJButton(),null);

mybg.add(jRadioButton);

mybg.add(jRadioButton1);

mybg.add(jRadioButton2);

}

returnjContentPane;

}

/**

*ThismethodinitializesjRadioButton

*

*@returnjavax.swing.JRadioButton

*/

privateJRadioButtongetJRadioButton(){

if(jRadioButton==null){

jRadioButton=newJRadioButton();

jRadioButton.setBounds(newRectangle(118,120,38,18));

jRadioButton.setText("黄");

jRadioButton.addActionListener(newjava.awt.event.ActionListener(){

publicvoidactionPerformed(java.awt.event.ActionEvente){

if(jRadioButton.isSelected()){

/////改变字体颜色

}

}

});

}

returnjRadioButton;

}

/**

*ThismethodinitializesjRadioButton1

*

*@returnjavax.swing.JRadioButton

*/

privateJRadioButtongetJRadioButton1(){

if(jRadioButton1==null){

jRadioButton1=newJRadioButton();

jRadioButton1.setBounds(newRectangle(170,120,38,18));

jRadioButton1.setText("红");

jRadioButton1.addActionListener(newjava.awt.event.ActionListener(){

publicvoidactionPerformed(java.awt.event.ActionEvente){

if(jRadioButton1.isSelected()){

////改变字体颜色

}

}

});

}

returnjRadioButton1;

}

/**

*ThismethodinitializesjRadioButton2

*

*@returnjavax.swing.JRadioButton

*/

privateJRadioButtongetJRadioButton2(){

if(jRadioButton2==null){

jRadioButton2=newJRadioButton();

jRadioButton2.setBounds(newRectangle(221,120,38,18));

jRadioButton2.setText("绿");

jRadioButton2.addActionListener(newjava.awt.event.ActionListener(){

publicvoidactionPerformed(java.awt.event.ActionEvente){

if(jRadioButton2.isSelected()){

/////改变字体颜色

}

}

});

}

returnjRadioButton2;

}

/**

*ThismethodinitializesjCheckBox

*

*@returnjavax.swing.JCheckBox

*/

privateJCheckBoxgetJCheckBox(){

if(jCheckBox==null){

jCheckBox=newJCheckBox();

jCheckBox.setBounds(newRectangle(118,156,51,26));

jCheckBox.setText("粗体");

jCheckBox.addActionListener(newjava.awt.event.ActionListener(){

publicvoidactionPerformed(java.awt.event.ActionEvente){

if(jCheckBox.isSelected()){

////设置字体为粗体

}

else{

////设置字体为非粗体

}

}

});

}

returnjCheckBox;

}

/**

*ThismethodinitializesjCheckBox1

*

*@returnjavax.swing.JCheckBox

*/

privateJCheckBoxgetJCheckBox1(){

if(jCheckBox1==null){

jCheckBox1=newJCheckBox();

jCheckBox1.setBounds(newRectangle(177,156,51,26));

jCheckBox1.setText("斜体");

jCheckBox1.addActionListener(newjava.awt.event.ActionListener(){

publicvoidactionPerformed(java.awt.event.ActionEvente){

if(jCheckBox1.isSelected()){

////设置字体为斜体

}

else{

///设置字体非斜体

}

}

});

}

returnjCheckBox1;

}

/**

*ThismethodinitializesjComboBox

*

*@returnjavax.swing.JComboBox

*/

privateJComboBoxgetJComboBox(){

if(jComboBox==null){

String[]mycbstr={"5","6","7","8","9","10","11","12","13"};

jComboBox=newJComboBox(mycbstr);

jComboBox.setBounds(newRectangle(120,196,57,21));

jComboBox.addActionListener(newjava.awt.event.ActionListener(){

publicvoidactionPerformed(java.awt.event.ActionEvente){

////设置字体相应的字号

}

});

}

returnjComboBox;

}

/**

*ThismethodinitializesjList

*

*@returnjavax.swing.JList

*/

privateJListgetJList(){

if(jList==null){

String[]myltstr={"楷体","隶书","黑体"};

jList=newJList(myltstr);

jList.setBounds(newRectangle(120,238,61,65));

jList.addListSelectionListener(newjavax.swing.event.ListSelectionListener(){

publicvoidvalueChanged(javax.swing.event.ListSelectionEvente){

///设置相应的字体

}

});

}

returnjList;

}

/**

*ThismethodinitializesjButton

*

*@returnjavax.swing.JButton

*/

privateJButtongetJButton(){

if(jButton==null){

jButton=newJButton();

jButton.setBounds(newRectangle(263,274,74,27));

jButton.setText("退出");

jButton.addActionListener(newjava.awt.event.ActionListener(){

publicvoidactionPerformed(java.awt.event.ActionEvente){

System.exit(0);

}

});

}

returnjButton;

}

publicstaticvoidmain(Stringargs[]){

newMyGUI();

}

}//@jve:decl-index=0:visual-constraint="10,10"

效果如下图:

如何写出更好的Java代码

1.优雅需要付出代价。

从短期利益来看,对某个问题提出优雅的解决方法,似乎可能花你更多的时间。但当它终于能够正确执行并可轻易套用于新案例中,不需要花上数以时计,甚至以天计或以月计的辛苦代价时,你会看得到先前所花功夫的回报(即使没有人可以衡量这一点)。这不仅给你一个可更容易开发和调试的程序,也更易于理解和维护。这正是它在金钱上的价值所在。这一点有赖某种人生经验才能够了解,因为当你努力让某一段程序代码变得比较优雅时,你并不是处于一种具生产力的状态下。但是,请抗拒那些催促你赶工的人们,因为那么做只会减缓你的速度罢了。

2.先求能动,再求快。

即使你已确定某段程序代码极为重要,而且是系统的重要瓶颈,这个准则依然成立。尽可能简化设计,让系统能够先正确动作。如果程序的执行不够快,再量测其效能。几乎你总是会发现,你所认为的”瓶颈”其实都不是问题所在。把你的时间花在刀口上吧。

3.记住”各个击破”的原理。

如果你所探讨的问题过于混杂,试着想像该问题的基本动作会是什么,并假设这一小块东西能够神奇地处理掉最难的部分。这”一小块”东西其实就是对象–请撰写运用该对象的程序代码,然后检视对象,并将其中困难的部分再包装成其他对象,依此类推。

4.区分class开发者和class使用者(使用端程序员)。

Class使用者扮演着”客户”角色,不需要(也不知道)class的底层运作方式。Class开发者必须是class设计专家,并撰写class,使它能够尽可能被大多数新手程序员所用,而且在程序中能够稳当执行。一套程序库只有在具备通透性的情况下,使用起来才会容易。

5.当你撰写class时,试着给予明了易懂的名称,减少不必要的注解。

你给客户端程序员的接口,应该保持概念上的单纯性。不了这个目的,当函数的重载(overloading)适合制作出直觉、易用的接口时,请善加使用。

6.也必你的分析和设计必须让系统中的classes保持最少,须让其Public interfaces保持最少,以及让这些classes和其他classes之间的关联性(尤其是base classes)保持最少。

如果你的设计所得结果更甚于此,请问问自己,是否其中每一样东西在整个程序生命期中都饶富价值?如果并非如此,那么,维护它们会使你付出代价。开发团队的成员都有不维护”无益于生产力提升”的任何东西的倾向;这是许多设计方法无法解释的现象。

7.让所有东西尽量自动化。先撰写测试用的程序代码(在你撰写class之前),并让它和class结合在一起。请使用makefile或类似工具,自动进行测试动作。

通过这种方式,只要执行测试程序,所有的程序变动就可以自动获得验证,而且可以立即发现错误。由于你知道的测试架构所具备的安全性,所以当你发现新的需求时,你会更勇于进行全面修改。请记住,程序语言最大的改进,是来自型别检查、异常处理等机制所赋予的内置测试动作。但这些功能只能协助你到达某种程度。开发一个稳固系统时,你得自己验证自己的classes或程序的性质。

8.在你撰写class之前先写测试码,以便验证你的class是否设计完备。如果你无法撰写测试码,你便无法知道你的class的可能长相。撰写测试码通常能够显现出额外的特性(features)或限制( constraints)__它们并不一定总是能够在分析和设计过程中出现。测试码也可做为展示class用法的示例程序。

9.所有软件设计上的问题,都可以通过”引入额外的概念性间接层(conceptual indirection)”加以简化。这个软件工程上的基础法则是抽象化概念的根据,而抽象化概念正是面向对象程序设计的主要性质。

10.间接层(indirection)应该要有意义(和准则-9致)。

这里所指的意义可以像”将共用程序代码置于惟一函数”这么简单。如果你加入的间接层(或抽象化、或封装等等)不具意义,它可能就和没有适当的间接层一样糟糕。

11.让class尽可能微小而无法切割(atomic)。

赋予每个class单一而清楚的用途。如果你的classes或你的系统成长得过于复杂,请将复杂的classes切割成比较简单的几个classes。最明显的一个判断指针就是class的大小:如果它很大,那么它工作量过多的机会就可能很高,那就应该被切割。重新设计class的建议线索是:

1)复杂的switch语句:请考虑运用多态(Polymorphism)。

2)许多函数各自处理类型极为不同的动作:请考虑切割为多个不同的(classes)。

12.小心冗长的引数列(argument lists)。

冗长的引数列会使函数的调用动作不易撰写、阅读、维护。你应该试着将函数搬移到更适当的class中,并尽量以对象为引数。

13.不要一再重复。

如果某段程序代码不断出现于许多derived class函数中,请将该段程序代码置于某个base class函数内,然后在derived class函数中调用。这么做不仅可以省下程序代码空间,也可以让修改该段程序代码动作更易于进行。有时候找出此种共通程序代码还可以为接口增加实用功能。

14.小心switch语句或成串的if-else子句。

通常这种情况代表所谓的”type-check coding”。也就是说究竟会执行哪一段程序代码,乃是依据某种型别信息来做抉择(最初,确切型别可能不十分明显)。你通常可以使用继承和多态来取代此类程序代码;Polymorphical method(多态函数)的调用会自动执行此类型别检验,并提供更可靠更容易的扩充性。

15.从设计观点来看,请找出变动的事物,并使它和不变的事物分离。

也就是说,找出系统中可能被你改变的元素,将它们封装于classes中。你可以在《Thinking in Patterns with Java》(可免费下载于 www. BruceEckel. Com)大量学习到这种观念。

16.不要利用subclassing来扩充基础功能。

如果某个接口元素对class而言极重要,它应该被放在base class里头,而不是直到衍生(derivation)时才被加入。如果你在继承过程中加入了函数,或许你应该重新思考整个设计。

17.少就是多。

从class的最小接口开始妨展,尽可能在解决问题的前提下让它保持既小又单纯。不要预先考量你的class被使用的所有可能方式。一旦class被实际运用,你自然会知道你得如何扩充接口。不过,一旦class被使用后,你就无法在不影响客户程序代码的情况下缩减其接口。如果你要加入更多函数倒是没有问题–不会影响既有的客户程序代码,它们只需重新编译即可。但即使新函数取代了旧函数的功能,也请你保留既有接口。如果你得通过”加入更多引数”的方式来扩充既有函数的接口,请你以新引数写出一个重载化的函数;通过这种方式就不会影响既有函数的任何客户了。

18.大声念出你的classes,确认它们符合逻辑。

请base class和derived class之间的关系是”is-a”(是一种),让class和成员对象之间的关系是”has-a”(有一个)。

19.当你犹豫不决于继承(inheritance)或合成(组合,composition)时,请你问问自己,是否需要向上转型(upcast)为基础型别。

如果不需要,请优先选择合成(也就是是使用成员对象)。这种作法可以消除”过多基础型别”。如果你采用继承,使用者会认为他们应该可以向上转型。

20.运用数据成员来表示数值的变化,运用经过覆写的函数(overrided method)来代表行为的变化。

也就是说,如果你找到了某个 class,带有一些状态变量,而其函数会依据这些变量值切换不同的行为,那么你或许就应该重新设计,在subclasses和覆写后的函数(overrided methods)中展现行为止的差异。

21.小心重载(overloading)。

函数不应该依据引数值条件式地选择执行某一段程序代码。这种情况下你应该撰写两个或更多个重载函数(overloaded methods)

22.使用异常体系(exception hierarchies)

最好是从Java标准异常体系中衍生特定的classes,那么,捕捉异常的人便可以捕捉特定异常,之后才捕捉基本异常。如果你加入新的衍生异常,原有的客户端程序仍能通过其基础型别来捕捉它。

23.有时候简单的聚合(aggregation)就够了。

飞机上的”旅客舒适系统”包括数个分离的元素:座椅、空调、视讯设备等等,你会需要在飞机上产生许多这样的东西。你会将它们声明为Private成员并开发出一个全新的接口吗?不会的,在这个例子中,元素也是Public接口的一部分,所以仍然是安全的。当然啦,简单聚合并不是一个常被运用的解法,但有时候的确是。

24.试着从客户程序员和程序维护的角度思考。

你的class应该设计得尽可能容易使用。你应该预先考量可能性有的变动,并针对这些可能的变动进行设计,使这些变动日后可轻易完成。

25.小心”巨大对象并发症”。

这往往是刚踏OOP领域的过程式(procedural)程序员的一个苦恼,因为他们往往最终还是写出一个过程式程序,并将它们摆放到一个或两个巨大对象中。注意,除了application framework(应用程序框架,译注:一种很特殊的、大型OO程序库,帮你架构程序本体)之外,对象代表的是程序中的观念,而不是程序本身。

26.如果你得用某种丑陋的方式来达成某个动作,请将丑陋的部分局限在某个class里头。

27.如果你得用某种不可移植方式来达成某个动作,请将它抽象化并局限于某个class里头。这样一个”额外间接层”能够防止不可移植的部分扩散到整个程序。这种作法的具体呈现便是Bridge设计模式(design pattern)。

28.对象不应仅仅只用来持有数据。

对象也应该具有定义明确界限清楚的行为。有时候使用”数据对象”是适当的,但只有在通用形容器不适用时,才适合刻意以数据对象来包装、传输一群数据项。

29.欲从既有的classes身上产生新的classes时,请以组合(composition)为优先考量。

你应该只在必要时才使用继承。如果在组合适用之处你却选择了继承,你的设计就渗杂了非必要的复杂性。

30.运用继承和函数覆写机制来展现行为上的差异,运用fields(数据成员)来展现状态上的差异。

这句话的极端例子,就是继承出不同的classes表现各种不同的颜色,而不使用”color”field.

31.当心变异性(variance)。

语意相异的两个对象拥有相同的动作(或说责任)是可能的。OO世界中存在着一种天生的引诱,让人想要从某个class继承出另一个subclass,为的是获得继承带来的福利。这便是所谓”变异性”。但是,没有任何正当理由足以让我们强迫制造出某个其实并不存在的superclass/subclass关系。比较好的解决方式是写出一个共用的base class,它为两个derived classes制作出共用接口–这种方式会耗用更多空间,但你可以如你所盼望地从继承机制获得好处,而且或许能够在设计上获得重大发现。

32.注意继承上的限制。

最清晰易懂的设计是将功能加到继承得来的class里头;继承过程中拿掉旧功能(而非增加新功能)则是一种可疑的设计。不过,规则可以打破。如果你所处理的是旧有的class程序库,那么在某个class的subclass限制功能,可能会比重新制定整个结构(俾使新class得以良好地相称于旧 class)有效率得多。

33.使用设计模式(design patterns)来减少”赤裸裸无加掩饰的机能(naked functionality)”。

举个例子,如果你的class只应该产出惟一一个对象,那么请不要以加思索毫无设计的手法来完成它,然后撰写”只该产生一份对象”这样的注解就拍拍屁股走人。请将它包装成singleton(译注:一个有名的设计模式,可译为”单件”)。如果主程序中有多而混乱的”用以产生对象”的程序代码,请找出类似 factory method这样的生成模式(creational patterns),使价钱可用以封装生成动作减少”赤裸裸无加掩饰的机能”(naked functionality)不仅可以让你的程序更易理解和维护,也可以阻止出于好意却带来意外的维护者。

34.当心”因分析而导致的瘫痪(analysis paralysis)”。

请记住,你往往必须在获得所有信息之前让项目继续前进。而且理解未知部分的最好也最快的方式,通常就是实际前进一步而不只是纸上谈兵。除非找到解决办法,否则无法知道解决办法。Java拥有内置的防火墙,请让它们发挥作用。你在单一class或一组classes中所犯的错误,并不会伤害整个系统的完整性。

35.当你认为你已经获得一份优秀的分析、设计或实现时,请试着加以演练。

将团队以外的某些人带进来-他不必非得是个顾问不可,他可以是公司其他团队的成员。请那个人以新鲜的姿态审视你们的成果,这样可以在尚可轻易修改的阶段找出问题,其收获会比因演练而付出的时间和金钱代价来得高。实现(Implementation)

36.一般来说,请遵守Sun的程序编写习惯。

价钱可以在以下网址找到相关文档:java.sun.com/docs/codeconv/idex.html。本书尽可能遵守这些习惯。众多Java程序员看到的程序代码,都有是由这些习惯构成的。如果你固执地停留在过去的编写风格中,你的(程序代码)读者会比较辛苦。不论你决定采用什么编写习惯,请在整个程序中保持一致。你可以在home.wtal.de/software-solutions/jindent上找到一个用来重排Java程序的免费工具。

37.无论使用何种编写风格,如果你的团队(或整个公司,那就更好了)能够加以标准化,那么的确会带来显著效果。这代表每个人都可以在其他人不遵守编写风格修改其作品,这是个公平的游戏。标准化的价值在于,分析程序代码时所花的脑力较小,因而可以专心于程序代码的实质意义。

38.遵守标准的大小写规范。

将 class名称的第一个字母应为大写。数据成员、函数、对象(references)的第一个字母应为小写。所有识别名称的每个字都应该连在一块儿,所有非首字的第一个字母都应该大写。例如: ThisIsAClassName thisIsAMethodOrFieldName如果你在static final基本型别的定义处指定了常量初始式(constant initializers),那么该识别名称应该全为大写,代表一个编译期常量。 Packages是个特例,其名称皆为小写,即使非首字的字母亦是如此。域名(org, net, edu等等)皆应为小写。(这是Java 1.1迁移至Java 2时的一项改变)。

39、不要自己发明”装饰用的”Private数据成员名称。

通常这种的形式是在最前端加上底线和其他字符,匈牙利命名法(Hungarian notation)是其中最差的示范。在这种命名法中,你得加入额外字符来表示数据的型别、用途、位置等等。仿佛你用的是汇编语言(assembly language)而编译器没有提供任何协肋似的。这样的命名方式容易让人混淆又难以阅读,也不易推行和维护。就让classes和packages来进行”名称上的范

围制定(name scoping)”吧。

40、当你拟定通用性的class时,请遵守正规形式(canonical form)。

包括equals()、hashCode()、clone()(实现出Cloneable),并实现出Comparable和Serialiable等等。

java程序设计

创建一个Point类,该类有分别获取 x,y,z的值得方法,以及获得矢径的方法。

创建一个Cube的类继承Point类,并增加了获取length值以及表面及和体积的方法。

创建一个Text类,该类主要用于运行主函数,创建一个Cube的对象,就可以调用相应的方法了。

具体代码如下:

public class Point{

private double x;

private double y;

private double z;

public void setX(double x){

this.x=x;//将参数值传入对象中(x)

}

public double getX(){

return x;//获取对象中的值(x)下面类同。

}

public void setY(double y){

this.y=y;

}

public double getY(){

return y;

}

public void setZ(double z){

this.z=z;

}

public double getZ(){

return z;

}

public double distance(){

return Math.sqrt(x*x+y*y+z*z);//获取矢径的值,通过坐标的数值得出结果。

}

}

2.创建Cube类;

public class Cube extends Point{

private double length;

public void setLength(double length){

this.length=length;

}

public double getLength(){

return length;

}

public double getV(){

return length*length*length;

}

public double getS(){

return length*length*6;

}

}

3.Text类

public class Text{

public static void main(String[] args){

Cube cb=new Cube();

cb.setLength(15.0);//需要什么方法就调用什么方法输入cb.就会弹出相应的窗口选择即可。

}

}

java程序设计代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java程序设计唐大仕pdf、java程序设计代码的信息别忘了在本站进行查找哦。

java是汇编语言吗?java是高级语言还是汇编语言三角函数的定义,高中三角函数定义