`
1641606815
  • 浏览: 39013 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

初学java总结

 
阅读更多
一.
  1:刚学了半年C,现在有刚接触java,难免有些不太习惯,只将刚学的总结一下.
  2:java不同于C语言,其思想为:一切皆为对象,对象中封装着明确的行为.
  3:现在编写一个经典的程序
  //定义一个HelloWorld类
  public class HelloWorld {
//设置主函数
public static void main(String[] args) {
System.out.println("HelloWorld");
}
  }
  结果为:HelloWorld
  在定义一个类时其格式为:
      public class 类名{
           //函数体
     }
  类名的命名规则:应和设置的文件的扩展名相同,且每个单词的首字母应大写,开头的必须为英语字母或者为下划线,名字组成可以为字母,下划线,数字.
  4:java的输出函数:
        System.out.println("输出的内容");
       System.out.ptint("输出的内容");
       两者的区别:前者表示输出内容后换行.
                 后者表示输出内容后不换行.
  5:String  是一个类,其也是一种数据类型
     String 类中常用的调用方法
     /**
     * 按字典顺序比较两个字符串,返回值为int型,如果str1在字典中位于str2之则    *返回一个正值,
     * 若相等则返回负值,否则返回0
     */
     String str1 = "java";
     String str2 = "cobol";
     System.out.println("结果为    "+str1.compareTo(str2));
     //将指定的字符串str2连接到str1
     System.out.println("结果为    "+str1.concat(str2));
     //测试字符串是否以指定的后缀结束,若是返回true否则返回false
     String str3 = "va";
     System.out.println("结果为    "+str1.endsWith(str3));
     //判断两个字符串是否相等,若相等返回true,否则返回false
     System.out.println("结果为    "+str1.equals(str1));
     //判断两个字符串是否相等,但不区分大小写
      String str4 = "JAVA";
     System.out.println("结果为     "+str1.equalsIgnoreCase(str4));
     //返回指定字符串在一个字符串中第一次出现处的索引
      String str5 = "cn.java";
     System.out.println("结果为     "+str5.indexOf(str1));
     //得到一个字符串的长度
      System.out.println("结果为     "+str5.length());
     //将一个字符串转换为字符数组
      char [] array = str1.toCharArray();
     for(int i=0;i<str1.length();i++){
     System.out.println("字符为====>>>"+array[i]);
     }
二.
   1.构造函数(构造方法,构造器):
      I:  构造函数名必须和类名相同
      II: 构造函数不需要返回值类型
      III:每一个类中都有一个默认的构造函数,若定义了一个构造函数则无默认的构造函数
      例如:
      public class Student{
         //设置名字属性
         private String name;
         //构造函数
         public Student(String name){
             this.name = name;
         }               
     }
   2.方法重载
      方法重载的条件:
      I: 方法名相同
      II:方法中的参数和类型不同
      例如:
      public class Student{
         //设置名字属性
           private String name;
           //设置年龄属性
           private int age;
         public Student(String name){
              this.name = name;
         }
         //方法重载
         public Student(String name,int age){
              this.name = name;
              this.age  = age;
         }
     }
三.
   1.登陆界面的开发
    常用的swing组件和布局
      JFrame  窗体类
      JPanel  面板类

      JLable  标签类
      JMenuBar菜单栏类
      JMenu   菜单项类
      JMenuItem   菜单子选项类
      JComboBox   下拉列表框类
      JCheckBox   复选框类
      JTextArea   多行文本域类
      JTextField  单行输入框类
      JButton     按钮类
      JPassWord   密码输入框类

      FlowLayout  流式布局
      GridLayout  网格布局
      BorderLayout边框布局
      其中 边框布局为界面默认的布局
     2.界面开发的一般格式
      //定义一个关于界面开发的类
      public class Frame{
         //主函数
           public static void main(String [] args){
             //实例化对象
                Frame f = new Frame();
             f.init();  //调用方法
         }
         public void init(){
             //实例化一个界面对象
             javax.swing.JFrame jf = new javax.swing.JFrame();
             //设置主题
                jf.setTitle("简单界面");
             jf.setSize(300,200);  //设置界面的大小
                javax.swing.FlowLayout f1=new javax.swing.FlowLayout();
             jf.setLayout(f1);    //设置界面为流式布局
                jf.setLocationRelativeTo(null);//设置窗体居中显示
                if.setDefaultCloseOperation(3);  //点击关闭按钮退出
                //实例化一个登录按钮对象
                javax.swing.JButton button=new javax.swing.JButton("登录");
             jf.add(button);   //登录按钮添加到窗体
                jf.setVisible(true);//设置界面可见
         }
     }
     jf.setVisible(true);一定要在界面上的组件添加完毕后加入,否则界面上没有该语句之后的特征.
四.   类的继承
       1.继承的优点:
          当所要实例化的对象较多且具有相同的特征时能节省代码
          提高程序的扩展性
       2.子类可从父类继承什么
          当子类与父类在同一个包下时:子类可以继承父类中公有,受保护的,默认的属性和方法;但父类中私有的属性和方法,构造函数不能被子类继承.
          当子类与父类不在同一个包下时: 子类可以从父类中继承公有的属性和方法;受保护的,默认的,私有的属性和方法以及构造函数不能被子类继承.
      3.继承的格式
          public class 子类名 extends 父类名{
             //函数体
         }
      4.方法的重写
          子类与父类的方法的返回值类型必须相同
          子类与父类的方法名,参数个数,参数类型必须相同
五.   
      1.接口-- 一种让子类可以重写方法的“类”.
      2.接口的定义
          public interface 接口名{
             public static final 数据类型 变量名=值;
             public 返回值类型 方法名(参数类型 参数名,...);
         }
         接口中只能定义常量,方法;类可以继承多个接口,接口可以继承多个接口
           接口不能实例化对象
       3.接口的实现
          public class 类名 implements 接口名{
              //实现接口中的所有方法
         }
         当类继承接口时必须实现接口中的所有的抽象方法
       4.抽象类:抽象类是介于类与接口之间的特殊的类
       5.抽象类的定义
           public abstract 抽象类名 {
              //定义类中的任何方法,常量,构造函数
                 //定义接口中的常量和抽象方法
                 //抽象方法的定义
                  public abstract 返回值类型 方法名(参数类型 参数名,...);
         }
         抽象类不能实例化对象
        6.事件机制
          事件源: 发生动作的组件
          监听器类型:设置事件源监听什么类型的动作
          事件处理者:根据监听器获得的信息处理事件
          常用的事件监听器基本上位于java.awt.event 包下,以Listener结尾
          常用的监听器有:
                         ActionListener
                     MouseListener
                     MouseMotionListener
                     KeyListener
六.    1.画图板实现步骤
            设置窗体及其属性
            给窗体添加按钮
            给按钮添加监听器
            给窗体添加鼠标监听器
            实现画图
        2.实现画图板的功能时较难实现的是曲线,多边形和喷枪的功能
          画曲线的方法:
         重要的是鼠标经过的每一个x2,y2坐标又重新变为x1,y1这样才能实现曲线的画法
         在mouseDragged()监听器中得知鼠标点击的是画曲线时可以用下列算法
              x2 = e.getX();
            y2 = e.getY();
            g.drawLine(x1,y1,x2,y2);
            x1 = x2;
            y1 = y2;
         画多边形的方法:
          画多边形时应记住画图形的起始点,这样才能保证闭合多变型,且将一条直线的结尾点变为下一条线的起始点
            首先定义4个变量来储存多边形的起始点和一条线的结束点坐标,并定义一个布尔型变量来判断,画的是否为第一条线
            假设定义如下变量
            int startx1,starty1,endx2,endy2;
          boolean s = true;
          在mouseDragged()监听器中得知鼠标点击的是画多边形时可以用下列算法
            x2 = e.getX();
          y2 = e.getY();
          if(s){
              g.drawLine(x1,y1,x2,y2);
              startx1 = x1;
              starty1 = y1;
              s = false;   //保证可以画第二条线
          }
          else{
              //设置误差的大小,使最后一条线的结尾点坐标与第一个点的坐标差的绝对值小于该误差时封闭图形
              if(Math.abs(startx1-x2)<6&&Math.abs(Starty1-y2)<6){
                  g.drawLine(x2,y2,startx1,starty1);
              }
              //画除了第一与最后一条线之外的其余线段
              else{
                  g.drawLine(endx2,endy2,x2,y2);
              }
          }
            endx2 = x2;
          endy2 = y2;
       画喷枪的方法:
         重要的是在一个区域内产生一系列的随机点
         可以用一个产生随机数的类定义一个方法
          // 实例化一个产生随机数的对象
          java.util Random rand = new java.util.Random();
         //设置鼠标所点击的的点的周围区域的大小
           int value = 6;
         //设置鼠标点击区域产生随机数的多少
           for(int i=0;i<9;i++){
              //在边长为value的正方形内产生随机坐标点
              int xValue = rand.nextInt(value);
              int yValur = rand.nestInt(value);
              //起始点与结束点相同画出的为点,固定坐标点加上一个随机数产生一个 随机坐标点
              g.drawLine(getX2()+xValue,getY2()+value,getX2+xValue,getY2+yValue);
          }



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics