Java课程总结

光阴似箭,一晃眼一学期的学习生活就快要过去了,而我们的Java课程也接近了尾声。在这一学期自己学到了很多关于Java语言的

编程方法,感觉很高心,自己也是能够打出一些操作代码出来的人了,也弥补了上学期一些关于编程知识的不足,因为上学期的C

语言并不是学得很好,而且在这学期能够学到更加适用于对象的操作很开心。

课程总结:

数组:是在内存中存储相同数据类型的连续的空间
声明一个数组就是在内存空间中划出一串连续的空间,数组名代表的是连续空间的首地址,通过首地址可以依次访问数组所有元素,
元素在数组中的排序叫做下标从零开始。数组分为静态初始化和动态初始化;静态初始化时在定义数组的同事给数组赋值,动态初
始化就是声明数组以后再对数组进行赋值。
 

方法的声明的使用:方法的定义一般是 public static+返回值类型+方法名+(参数){+方法主体};方法分为有无返回值的两种,

无返回值时,返回值类型用void。方法的重载时方法名相同,但是方法的参数类型、参数的个数不同。方法递归定义:指一个方法自
己调用自己的方法;递归方法的特点:① 方法必须有递归的结束条件。② 方法在每次递归处理时一定要做出一些变更。
public class ASKM {

    public static void main(String[] args) {
        Test();
        Test("asdsdf");
        
    }
    public static void Test() {
        int a[]= {51,60,80,90,70};//静态初始化赋值
        for(int i=0;i<5;i++) {
            System.out.println(a[i]);
        }
    }
    //方法的重载
    public static String Test(String str) {
        char s[]=str.toCharArray();
        for(int i=0;i<6;i++) {
            System.out.print(s[i]+" ");
        }
        System.out.print("
");
        byte b[]=new byte[str.length()];//声明一个字节数组b
        for(int i=0;i<s.length;i++) {
            b[i]=(byte) (s[i]-32);//动态初始化赋值
            System.out.print(b[i]+" ");
        }
        
        return str;
    }

}
 第五章、面向对象的编程:
1、类与对象:构造类一般就class+类名;对象就是声明类时所定义的一个对象,它表示的是一个具体的东西,而对象所可能拥有的
大小、年龄、姓名这些则是对象的属性。
 
2、构造方法:专门用来创建对象的方法,当我们通过关键字new来创建对象时,其实就是调用构造方法。
格式:class 类名{
                    public 类名(){
                        .......
                    }
            }
3、String类:String类位于java.lang包下,是Java语言的核心类,提供了字符串的比较、查找、截取、大小写转换等操作。学习
String类主要掌握它的一些方法就行了。
方法:p111。
 
4、this关键词:指的是访问类中的成员变量,用来区分成员变量和局部变量(重名问题)

this.方法名称用来访问本类的成员方法

this(); 访问本类的构造方法()中可以有参数的 如果有参数 就是调用指定的有参构造
注意:this()只能写在构造方法中,不能卸载普通方法里,而且的是在构造方法的首行。
 
5、static关键词:在类中,用static声明的成员变量为静态成员变量,也成为类变量。类变量的生命周期和类相同,在整个应用程序
执行期间都有效。

注意:

  • static修饰的成员变量和方法,从属于类

  • 普通变量和方法从属于对象

  • 静态方法不能调用非静态成员,编译会报错

异常的捕获及处理:

异常:导致程序终端的一种指令流。异常的五个关键词:try、catch、throw、throws和finally。异常处理一般有三种处理方式立即处

理、稍后处理和不处理。

1、立即处理一般是用try、catch对异常进行处理,try语句内放可能存在的异常,catch是用来激发被捕获的异常 ,有时还会在catch

后加一个finally块用来清除程序没有释放的资源。

2、稍后处理一般是用throw关键词将异常抛出,抛给上层调用者,throw是将一个明确的异常抛出。

多线程:

1.多线程问题:关于实现多线程有两种办法。第一种通过继承Thread类,这种方法不能够实现数据共享;第二种实现Runnable接口。

2.同步问题:要实现数据同步可以通过同步代码块和同步方法实现,关键词synchronized。

3.操作文件的类--File;学到了File的一些方法,使用File类去修改文件的操作。 注:使用File类要引入java.io。

 4、购票问题:

package demo;

public class MyThread implements Runnable{
    private int ticket=100;

    public void run() {
        for(int i=0;i<100;i++) {
            synchronized(this) {
                if(ticket>0) {
                    try{
                        Thread.sleep(1000);
                    }catch(InterruptedException e) {
                        e.printStackTrace();
                    }
                    System.out.println("出票成功:"+ticket--);
                }
            }
        
        }
    

    }

}
package demo;

public class test {

    public static void main(String[] args) {
        MyThread mt=new MyThread();
        for(int i=0;i<9;i++) {
            Thread i1=new Thread(mt);
            i1.start();
        }
    }
}

 Java IO:

1、File类是唯一表示与文件本身有关的类,使用File类时,必须要设置路径;使用File类可以对文件进行删除文件、创建文件、

判断文件是否存在等一系列操作。

2、RandomFile类:通过该类可以同文件的数据进行读出和输入的操作。1、

3、字符流与字节流基本操作:字节流通过OutputStream与InputStream可以对文件进行输出和输入的操作,还学到了一些其他

的方法;字符流则是通过Writer与Reader类对分件进行操作的,这两种办法大同小异。

4、管道流主要作用是可以进行两个线程间的通信,管道输出流:PipedOutputSream;管道输入流:PipedInputStream用

connect()方法来连接输出和输入流。

5、后面还有些类的其方法的作用。

图形界面:

学习了关于创造界面,对界面进行一些操作,比如:设置界面大小、位置,在界面上显示文字、组件等。

设置图形界面肯定是要学习AWT和Swing包中一些类和类方法的;关于这两个包的区别是AWT主要是针对于Windows系统的,

AWT中引入了大量的Windows函数,并不适合跨平台使用,Swing包是以AWT平台为基础构建起来的新组件,它更适用于各

平台之间使用,且可以更加轻松地构建用户界面。我们主要学习Swing包的一些操作。

Swing包:

基本容器JFrame:我们可以直接使用JFrame类来构造一个窗口,还可以用JFrame类的一些方法来设置窗口的位置、大小、

背景颜色,主要是界面组件的添加也是通过JFrame类的一个方法去实现的。(关于界面的大小还可以通过Dimession去实现

;point类可以实现窗口的位置,并且还可以移动窗口)。

 

标签组件JLabel和按钮组件JButton:界面上的文字、图片是通过JLabel的一些方法去实现的;按钮组件呐是写一些可以点击

的组件,比如:QQ上的登陆,游戏界面刚进去显示的“开始游戏”,这些是通过JButton实现的。

 

布局管理器:FlowLayout、BorderLayout、GirdLayout、CardLayout和绝对定位。

这五个布局管理器都有各自的特点,其目的就是为了让界面上的组件按一定的次序或者说自己设置的位置去摆放,若是没有

布局管理器那么当两个组件放在一起时后面的组件则会覆盖前面的组件。

事件和监听器:每按下一个按钮时,就会发生事件,想要对事件进行处理则需要对事件进行监听。监听器都

是监听接口实现的。本周学习了WindowListener和ActionListener这两个接口方法,WindowListener主要是针对

窗体事件的,ActionListener呐则是对一些动作进行反应处理,比如按按钮。监听适配器是为了解决监听器的抽

样方法过多的问题,比如你通过实现WindowListener接口的话,则需要覆写它所有的抽样方r法,那么过于麻烦,

因为有时候我们又不需要用到所有的方法。WindowListener它具有多个抽样方法,但ActionListener它只有一个

抽样方法,我们在使用它的时候只需要配合采用匿名内部类(它就是在一个方法中去声明一个接口方法,再去覆

写使用)在覆写它的抽样方法就可以了,很方便。本周我们就学习了这么多。

 其他容器:JPanel、JTabbedPane、JScrollPane、JDesktopPane与JInternalFrame,JPanel没什么好讲的,他就是

一个普通的容器,它有一个默认的FlowLayout布局管理器;JTabbedPane是在一个面板上设置多个选项卡,这个一

般在网页,文件上面的一些操作都会用到,还有它的一些方法,对了这次的实验测试题计算器也是可以用到这个,但

我没用到,因为我一开始对着不熟悉;JScrollPane则是则是通过它的一些方法让不显示在界面窗口的内容可以显示在

窗口中;JDesktopPane与JInternalFrame这两个是一起用的,通过它的方法可以在在主窗体内创建多个子窗口,这个

很有用,我们浏览的网页应该也是这个方法实现的。

组件:文本组件JTestComponent、文本框组件JTextFiled、密文输入组件JPasswordFiled。这些没什么好说的,主要

是主要掌握了它们的方法和用途就行了。文本框组件JTextFiled这个一般就是帐号输入;密文输入组件JPasswordFiled

则是密码输入,你可以将你输入的内容定义成你想要显示的字符。

原文地址:https://www.cnblogs.com/shigedidi/p/12022570.html