美文网首页石臼墙话板
Java学习到的问题

Java学习到的问题

作者: 朱雪如_19强化班 | 来源:发表于2019-08-21 13:01 被阅读5次

    1、为什么要使用键盘录入数据:

    a 为了让程序的数据更符合开发的数据

    b 让程序能够更加的灵活一些

    2.键盘录入的格式:

    a :导包

    格式

    import java.util.Scanner;

    位置:

    在class上面.

    b :创建键盘录入对象

    格式:

    Scanner sc = new Scanner(System.in);

    c:通过对象获取数据

    格式:

    int x = sc.nextInt();

    3、???

    System.out.println("a="+a+",b="+b);    //输出a和b的值

    g=a/b;    //将a除以b的结果放在g中

    System.out.println("a/b="+g+"\n");    //输出g的值

    3、BufferedReader

    System.in的类型可以归结为节点流、字节流、输入流;

    InputStreamReader这个对象是处理流,字符流,输入流;

    BufferedReader的类型是缓冲处理流、字符流、输入流。

      类 InputStreamReader是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符。它使用的字符集可以由名称指定或显式给定,或者可以接受平台默认的字符集。如:GBK

      每次调用 InputStreamReader 中的一个 read() 方法都会导致从底层输入流读取一个或多个字节。要启用从字节到字符的有效转换,可以提前从底层流读取更多的字节,使其超过满足当前读取操作所需的字节。 为了达到最高效率,可要考虑在 BufferedReader 内包装 InputStreamReader。例如:  BufferedReader in= new BufferedReader(new InputStreamReader(System.in));

    System.in是个字节流

    InputStreamReader是个字符流和字节流之间的转换中介

    BufferedReader是个字符流

    整体意思就是用InputStreamReader这个中介把System.in这个字节流转换成字符流BufferedReader

    这样输入的时候就可以不是一个一个字节读,而是一个一个字符读,再加上是个Buffer,效率会高很多。

    InputStream is = System.in;//键盘输入流

    InputStreamReader isr = new InputStreamReader(is);//字节流转换为字符流

    BufferedReader bufr = new BufferedReader(isr);//把字符流添加到缓冲流

    用户通过reader对象的readLine方法来进行读取。

    InputStreamReader 就是一个可以从 System.in 里面读取东西的管道

    然后BufferedReader 就是比InputStreamReader 更高级的 更粗点的管道 可以嵌套在InputStreamReader的外面 从而实现缓冲功能 并且可以用外层管道的readLine()方法读取一行数据

    依次类推 一种低级字节流管道的管道 我们可以在其外面嵌套一个更高级的数据流管道 从而更加方便的读写数据

    4、.java与.javax的区别

    java和javax都是Java的API包,java为java语言的核心包,javax为java语言的扩展包。

    java包是java基础核心类库,也就是Java Development kit ,提供java语言编程核心包,如io、awt、集合库(如Collection、List、Map)等;

    javax是java基础上的扩展包,如swing、servlet、jsp、xml等类库。

    5、Icon

    setIcon(Icon) - 类 javax.swing.AbstractButton 中的方法

    设置按钮的默认图标。

    setIcon(boolean) - 类 javax.swing.JInternalFrame 中的方法

    如果外观支持图标化,则对此内部窗体执行图标化或取消图标化。

    setIcon(Icon) - 类 javax.swing.JLabel 中的方法

    定义此组件将要显示的图标。

    setIcon(Icon) - 类 javax.swing.JOptionPane 中的方法

    设置要显示的图标。

    setIcon(MutableAttributeSet, Icon) - 类 javax.swing.text.StyleConstants 中的静态方法

    设置图标属性。

    在API中找到了这五个,但是我们一般用的就是setIcon(Icon),其中Icon类是接口,无法创建实例,所以这里的Icon一般用实现了Icon接口的ImageIcon类来代替。

    举个例子:

    假如你的同一个目录下有一个1.png的图片,给JLabel设置图标就可以这样:

    JLabel label=new JLabel();

    ImageIcon icon=new ImageIcon("1.png");

    label.setIcon(icon);

    6、碰撞检测

    // 构造一个新的 Rectangle,其左上角的坐标为 (0,0),其宽度和高度由同名的参数指定。

    public Rectangle(int width, int height)

    // 构造一个新的 Rectangle,其左上角被指定为 (x,y),其宽度和高度由同名的参数指定。

    public Rectangle(int x, int y, int width, int height)

    和碰撞检测相关的方法:

    // 计算此 Rectangle 与指定 Rectangle 的交集

    public Rectangle intersection(Rectangle r)

    // 确定此 Rectangle 是否与指定的 Rectangle 相交

    public boolean intersects(Rectangle r)

    相关文章

      网友评论

        本文标题:Java学习到的问题

        本文链接:https://www.haomeiwen.com/subject/hgubsctx.html