首页编程java编程java程序设计与实践第二版?程序设计语言实践之路第二版

java程序设计与实践第二版?程序设计语言实践之路第二版

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

大家好,今天给各位分享java程序设计与实践第二版的一些知识,其中也会对程序设计语言实践之路第二版进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!

java程序设计与实践第二版?程序设计语言实践之路第二版

java程序设计

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

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

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

具体代码如下:

public class Point{

private double x;

java程序设计与实践第二版?程序设计语言实践之路第二版

private double y;

private double z;

public void setX(double x){

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

}

public double getX(){

java程序设计与实践第二版?程序设计语言实践之路第二版

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程序设计课程作业,请高手帮忙啊

1.ABD自动装箱拆箱,byte的范围不能超过255

2.BCD false关键字必须小写,且Java不支持0转false,C/C++中支持

3.ACD abstract抽象必须被继承,不能被实例化,final类不能被继承

4.ACD+在字符串操作中用作连接符,三元运算符A? B:C若表达式A为真,则返回B的值,若A为假,返回C的值

5.AC标识符命名规则:以英文字母或_$开头,包括英文字母,数字_$,不能是Java保留关键字

6.AC父类接受子类对象,自动完成类型转换,这叫安全的向上转型

7.BC系统给引用类型赋的初值都是NULL而String是一个引用类型

8.BCD基本概念

9.BCD方法的名字和方法参数合起来叫做:方法标签,方法由方法标签唯一标示!方法的重载要求方法名相同的情况下,来区别不同的方法,所以只能靠参数的不同来区别!

10.BCD这题出得真烂,也不给出是哪里定义的paint()方法,这里姑且当做Swing中的一个方法来对待。。

以下是判断题:

1.A java只支持单继承

2.A高级的异常类放前面,后面的将无用

3.A浮点数也可以

4.B

5.A区分

6.A抽象类不一定要有抽象方法

7.B都转为数据类型最大的那个类型再运算

8.A这个表述=。=其实参数类型和个数都相同的情况下,还可以根据参数的排列来区别方法

9.A String不可变字符串!

10.A同上

11.B这个题目怎么说呢,如果父类有private成员,则子类虽然继承到了这个成员,但是无法访问它,不知道这算不算子类成员,这里如果算,那么是对的,如果不算,就是错误

12.A java.lang是包名!应该是java.lang.Object

13.A刚好说反了

14.B

15.B接口中只能有抽象方法,且不用显示的修饰为abstract

16.B

17.B

18.A抽象类可以有普通方法

19.A

20.A这个相同属性是什么意思?指属性的类型相同,那是对的,如果指属性的值相同,这个就错了

个人答案,仅供参考,错误之处,请多包涵

java 程序设计

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

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

package com.test;

import java.awt.*;

import java.util.*;

import java.awt.geom.*;

import java.awt.event.*;

import javax.swing.*;

public class MyFiveChess{

public static void main(String[] args){

JFrame f= new JFrame();

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Dimension screenSize= Toolkit.getDefaultToolkit().getScreenSize();

int screenWidth= screenSize.width;

int screenHeight= screenSize.height;

f.setSize(screenWidth/ 2, screenHeight/ 2);

f.setLocation(screenWidth/ 4, screenHeight/ 4);

f.setTitle("FiveChess");

MyPanel panel= new MyPanel();

f.add(panel);

f.setVisible(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(){

jb.addActionListener(new MyActionHandler());

jb2.addActionListener(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){

super.paint(g);

jb.setLocation(400,150);

jb2.setLocation(400,200);

g.setColor(Color.RED);

g.setFont(new Font(null, Font.BOLD, 20));

g.drawString((first?"黑":"白")+"方下子", 400, 100);

g.setColor(new Color(240, 210, 120));

g.fillRect(bx- l, by- l, l*(n+ 2), l*(n+ 2));

g.setColor(Color.BLACK);

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

g.drawLine(bx, by+ i* l, bx+ l* n, by+ i* l);

g.drawLine(bx+ i* l, by, bx+ i* l, by+ l* n);

}

Graphics2D g2=(Graphics2D)g;

isBlack= first;

for(Ellipse2D r: squares){

g2.setColor(isBlack? Color.BLACK: Color.WHITE);

g2.fill(r);

isBlack=!isBlack;

}

if(isOver){

g.setColor(Color.RED);

g.setFont(new Font("TimesRoman", Font.BOLD, 60));

g.drawString((isBlack?"白":"黑")+"方获胜", 120, 200);

}

}

public Ellipse2D find(Point2D p){

for(Ellipse2D r: squares)

if(r.contains(p))

return r;

return null;

}

public void add(Point2D p){

if(p.getX()> bx- l/ 2&& p.getX()< bx+ l* n+ l/ 2&&

p.getY()> by- l/ 2&& p.getY()< 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 Ellipse2D.Double(bx+ j* l- l/ 2,

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

if(current.contains(p)){

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

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

current.setFrame(bx+ j* l- l/ 2+ 1,

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

squares.add(current);

repaint();

return;

}

}

}

}

}

private class MouseHandler extends MouseAdapter{

public void mousePressed(MouseEvent event){

if(isOver) return;

current= find(event.getPoint());

if(current== null)

add(event.getPoint());

}

}

private class MyActionHandler implements ActionListener{

public void actionPerformed(ActionEvent e){

String cmd=e.getActionCommand();

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(r.contains(event.getPoint())){

setCursor(Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR));

}else setCursor(Cursor.getDefaultCursor());

}

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<= state.length- 5? x+ 4: state.length- 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< state.length- 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< state.length- 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;

}

}

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

关于java程序设计与实践第二版的内容到此结束,希望对大家有所帮助。

socket编程代码?javasocket编程步骤ai什么意思?ai是什么意思