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 程序设计等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)