Java程序设计

Java程序设计,第1张

public class ExceptionDemo {

public static void main(String[] args) {

try {

throw new Exception("异常");

} catch (Exception e) {

Systemoutprintln(egetMessage());

} finally {

Systemoutprintln("finally最后执行");

}

}

}

JAVA是一种平台,也是一种程序设计语言,如何学好程序设计不仅仅适用于JAVA,对C++等其他程序设计语言也一样管用。有编程高手认为,JAVA也好C也好没什么分别,拿来就用。为什么他们能达到如此境界我想是因为编程语言之间有共通之处,领会了编程的精髓,自然能够做到一通百通。如何学习程序设计理所当然也有许多共通的地方。

1、培养兴趣

兴趣是能够让你坚持下去的动力。如果只是把写程序作为谋生的手段的话,你会活的很累,也太对不起自己了。

2、慎选程序设计语言

男怕入错行,女怕嫁错郎。初学者选择程序设计语言需要谨慎对待。软件开发不仅仅是掌握一门编程语言了事,它还需要其他很多方面的背景知识。软件开发也不仅仅局限于某几个领域,而是已经渗透到了各行各业几乎每一个角落。

3、要脚踏实地,快餐式的学习不可取

软件开发是一门工程学科,注重的就是实践,“君子动口不动手”对软件开发人员来讲根本就是错误的,他们提倡“动手至上”,但别害怕,他们大多温文尔雅,没有暴力倾向,虽然有时候蓬头垢面的一副“比尔盖茨”样。我们在看书的时候,不要等到你完全理解了才动手敲代码,而是应该在看书的同时敲代码,程序运行的各种情况可以让你更快更牢固的掌握知识点。

4、多参考程序代码

程序代码是软件开发最重要的成果之一,其中渗透了程序员的思想与灵魂。许多人被《仙剑奇侠传》中凄美的爱情故事感动,悲剧的结局更有一种缺憾美。为什么要以悲剧结尾据说是因为写《仙剑奇侠传》的程序员失恋而安排了这样的结局,他把自己的感觉融入到游戏中,却让众多的仙剑迷扼腕叹息。

参考代码例子,也可以研究一些开源的软件或框架。

5、加强英文阅读能力

对学习编程来说,不要求英语,但不能一点不会,。最起码像JAVAAPI文档(参考文献[44])这些东西还是要能看懂的,连猜带懵都可以;旁边再开启一个“金山词霸”。

6、万不得已才请教别人

要知道独立思考的能力对你很重要。要知道程序员的时间是很宝贵的。

7、使用合适的工具

工欲善其事必先利其器。软件开发包含各种各样的活动,需求收集分析、建立用例模型、建立分析设计模型、编程实现、调试程序、自动化测试、持续集成等等,没有工具帮忙可以说是寸步难行。工具可以提高开发效率,使软件的质量更高BUG更少。组合称手的武器。北京计算机学校认为到飞花摘叶皆可伤人的境界就很高了,无招胜有招,手中无剑心中有剑这样的境界几乎不可企及。

之前有人问过同样的问题,我回答的,你们是不是同一个系的,要做课程设计?我直接粘贴过来:

我自己写了一个简单的程序,可选择落子的先后顺序,重新开始,最后判断某一方是否为五子连珠。选择落子的先后顺序,只需定义一个boolean变量,每次切换取其反值;重制棋盘或重新开始就把棋盘重新绘制一遍;判断某一方是否为五子连珠,就判断某方的每个棋子,以它为中心与之紧邻的水平,垂直,左斜,右斜四个方向是否有五子连珠。用一个二维数组position存储棋盘上的棋子情况,position[x][y]=1,0,-1分别表示棋盘的第x行第y列下有黑子,无子,白子。源代码如下:

package comtest;

import javaawt;

import javautil;

import javaawtgeom;

import javaawtevent;

import javaxswing;

public class MyFiveChess {

public static void main(String[] args) {

JFrame f = new JFrame();

fsetDefaultCloseOperation(JFrameEXIT_ON_CLOSE);

Dimension screenSize = ToolkitgetDefaultToolkit()getScreenSize();

int screenWidth = screenSizewidth;

int screenHeight = screenSizeheight;

fsetSize(screenWidth / 2, screenHeight / 2);

fsetLocation(screenWidth / 4, screenHeight / 4);

fsetTitle("FiveChess");

MyPanel panel = new MyPanel();

fadd(panel);

fsetVisible(true);

}

}

class MyPanel extends JPanel {

private static final int SIDELENGTH = 10;

private ArrayList<Ellipse2D> squares = new ArrayList<Ellipse2D>();;

private Ellipse2D current = null;

JButton jb = new JButton("重新开始");

JButton jb2 = new JButton("切换先手");

boolean isBlack;

boolean first = true;

boolean isOver;

int l = 16;

int n = 20;

int bx = 20;

int by = 20;

int[][] position = new int[n + 1][n + 1];

public MyPanel(){

jbaddActionListener(new MyActionHandler());

jb2addActionListener(new MyActionHandler());

addMouseListener(new MouseHandler());

addMouseMotionListener(new MouseMotionHandler());

add(jb);

add(jb2);

}

public void initMyPenal(){

squares = new ArrayList<Ellipse2D>();

current = null;

isBlack = first;

isOver = false;

position = new int[n + 1][n + 1];

for(int i = 0; i <= n; i++)

for(int j = 0; j <= n; j++)

position[i][j] = 0;

repaint();

}

public void paint(Graphics g) {

superpaint(g);

jbsetLocation(400,150);

jb2setLocation(400,200);

gsetColor(ColorRED);

gsetFont(new Font(null, FontBOLD, 20));

gdrawString((first "黑" : "白")+"方下子", 400, 100);

gsetColor(new Color(240, 210, 120));

gfillRect(bx - l, by - l, l (n + 2), l (n + 2));

gsetColor(ColorBLACK);

for (int i = 0; i <= n; i++){

gdrawLine(bx, by + i l, bx + l n, by + i l);

gdrawLine(bx + i l, by, bx + i l, by + l n);

}

Graphics2D g2 = (Graphics2D)g;

isBlack = first;

for(Ellipse2D r : squares){

g2setColor(isBlack ColorBLACK : ColorWHITE);

g2fill(r);

isBlack = !isBlack;

}

if(isOver) {

gsetColor(ColorRED);

gsetFont(new Font("TimesRoman", FontBOLD, 60));

gdrawString((isBlack "白" : "黑") + "方获胜", 120, 200);

}

}

public Ellipse2D find(Point2D p){

for(Ellipse2D r : squares)

if(rcontains(p))

return r;

return null;

}

public void add(Point2D p) {

if(pgetX() > bx - l / 2 && pgetX() < bx + l n + l / 2 &&

pgetY() > by - l / 2 && pgetY() < by + l n + l / 2){

for (int i = 0; i <= n; i++) {

for (int j = 0; j <= n; j++) {

if(position[i][j] == 1 || position[i][j] == -1) continue;

current = new Ellipse2DDouble(bx + j l - l / 2,

by + i l - l / 2, l, l);

if (currentcontains(p)) {

position[i][j] = isBlack 1 : -1;

isOver = isWin(position, isBlack, i , j) true : false;

currentsetFrame(bx + j l - l / 2 + 1,

by + i l - l / 2 + 1, l - 2, l - 2);

squaresadd(current);

repaint();

return;

}

}

}

}

}

private class MouseHandler extends MouseAdapter{

public void mousePressed(MouseEvent event){

if(isOver) return;

current = find(eventgetPoint());

if(current == null)

add(eventgetPoint());

}

}

private class MyActionHandler implements ActionListener{

public void actionPerformed(ActionEvent e) {

String cmd=egetActionCommand();

if("重新开始"equals(cmd)){

initMyPenal();

}else if("切换先手"equals(cmd)){

initMyPenal();

first=!first;

}

}

}

private class MouseMotionHandler implements MouseMotionListener{

public void mouseMoved(MouseEvent event){

Rectangle r = new Rectangle(bx - l, by - l, l (n + 2), l (n + 2));

if(rcontains(eventgetPoint())){

setCursor(CursorgetPredefinedCursor(CursorCROSSHAIR_CURSOR));

}else setCursor(CursorgetDefaultCursor());

}

public void mouseDragged(MouseEvent event){}

}

public boolean isWin(int[][] state, boolean isBlack, int x, int y) {//四个方向中是否有五子连珠

return isCzWin(state, isBlack, x, y)

|| isSpWin(state, isBlack, x, y)

|| isYxWin(state, isBlack, x, y)

|| isZxWin(state, isBlack, x, y);

}

public boolean isCzWin(int[][] state, boolean isBlack, int x, int y) {//判断垂直方向是否有五子连珠

int n = 0;

int a = (x >= 4 x - 4 : 0);

int b = (x <= statelength - 5 x + 4 : statelength - 1);

for (int i = a; i <= b; i++)

if (state[i][y] == (isBlack 1: -1)) {

if (++n == 5) return true;

} else n = 0;

return false;

}

public boolean isSpWin(int[][] state, boolean isBlack, int x, int y) {//判断水平方向是否有五子连珠

int n = 0;

int a = (y >= 4 y - 4 : 0);

int b = (y <= state[0]length - 5 y + 4 : state[0]length - 1);

for (int i = a; i <= b; i++)

if (state[x][i] == (isBlack 1: -1)) {

if (++n == 5) return true;

} else n = 0;

return false;

}

public boolean isZxWin(int[][] state, boolean isBlack, int x, int y) {//判断左斜方向是否有五子连珠

int n = 1, a = x, b = y;

for (int i = 1; i <= 4 && a > 0 && b > 0; i++)

if (state[a - 1][b - 1] == (isBlack 1: -1)) {

n++; a--; b--;

} else break;

for (int i = 1; i <= 4 && x < statelength - 1 && y < state[0]length - 1; i++)

if (state[x + 1][y + 1] == (isBlack 1: -1)) {

n++; x++; y++;

} else break;

if (n >= 5) return true;

return false;

}

public boolean isYxWin(int[][] state, boolean isBlack, int x, int y) {//判断右斜方向是否有五子连珠

int n = 1, a = x, b = y;

for (int i = 1; i <= 4 && a > 0 && b < state[0]length - 1; i++)

if (state[a - 1][b + 1] == (isBlack 1: -1)) {

n++; a--; b++;

} else break;

for (int i = 1; i <= 4 && x < statelength - 1 && y > 0; i++)

if (state[x + 1][y - 1] == (isBlack 1: -1)) {

n++; x++; y--;

} else break;

if (n >= 5) return true;

return false;

}

}

比较简略,自己可以根据情况修改,改进改进!

import javaio;

public class Statistics{

public static void main(String[] args) throws IOException{

Systemoutprint("请输入语句:");

BufferedReader input=new BufferedReader(new InputStreamReader

(Systemin));

String statement=inputreadLine();

int l=0;

int count=1;

boolean t=false;

String tmp="";

for(int s=0;s<statementlength();s++){

String sub=statementsubstring(s,s+1);

tmp+=sub;

}

l=tmplength();

String c[]=new String[l];

for(int i=0;i<l;i++){

c[i]=tmpsubstring(i,i+1);

}

for(int b=0;b<l;b++){

for(int e=0;e<b;e++){

if(c[b]equals(c[e])){

t=true;

}

}

if(t==false){

for(int d=b+1;d<l;d++){

if(c[b]equals(c[d])){

count++;

}

}

if(c[b]equals(" ")==true){

Systemoutprintln("空格共出现了"+count+"次");

}

else{

Systemoutprintln(c[b]+"字符共出现了"+count+"次");

}

count=1;

}

t=false;

}

}

}

Java不仅可以用来开发大型的桌面应用程序,而且还特别适合于Internet的应用开发。目前,很多新的技术领域都涉及Java。Java是面向对象程序设计语言,涉及网络、多线程等重要的基础知识,因此Java也是学习面向对象编程和网络编程的首选语言。

本书讲解Java程序设计知识及其编程方法,包括Java语言的基础语法、结构化程序设计、面向对象程序设计、数组、字符串、向量、哈希表、枚举、异常处理、文件和数据流、图形用户界面设计、Applet程序、线程、编程规范、网络程序设计、多媒体和图形学程序设计等。

本书的章节编排与内容以人们学习与认知的过程为基础,注重内容的可读性和可用性,与实际需求相匹配。内容力求简明,许多例题都经过精心设计,既能帮助理解知识,又具有启发性;每章都包含了图、表、例程以及类和接口的说明,使读者在轻松和愉快之中迅速理解与掌握Java程序设计的知识和方法,并应用到实践中去。本书既可以作为高等院校各专业的基础教材,也可以作为使用Java的工程技术人员和科技工作者的自学参考书。

以上就是关于Java程序设计全部的内容,包括:Java程序设计、如何学习java程序设计、java 程序设计等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9514664.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存