课程总结

一.认识JAVA

(1)以前对java一点认识都没有,通过书本简单的了解了java的发展过程,还有他的开发工具JDK的发展历程,了解到java的开发放心,java语言的特点,可移植性、面向对象、解释型、多线程处理能力、安全性。

Java程序的运行机制和Java虚拟机,Java中所有程序都是在JVM上运行的,所有的class文件都是在JVM上运行。知道如何搭建Java开发环境,知道JDK的安装与配置,实现了第一个Java程序,了解到了classpath属性的作用,path是操作系统的环境属性,指的是可以执行命令的程序路径。classpath是所有*.class文件执行的路径,Java命令执行时将利用此路径加载所需要的*.class文件

 知道Java程序如何注释,在要注释的内容开头用/*标明,结尾用/*标明,认识Java中的标识符,标识符不能以数字开头,也不能是Java中的保留关键词,了解到了Java当中的关键词,变量跟常量的声明

 

二.面向对象的基本概念

(1)对于面向对象的程序设计有三个主要特征:封装性,继承性,多态性。

封装性

为属性封装:private 属性类型 属性名称;

为方法封装:private 方法返回值 方法名称(参数列表){}

构造方法

1.构造方法的名称必须与类名称一致

2.构造方法的声明处不能有任何返回值类型的声明

3.不能再构造方法中使用return返回一个值

构造方法定义格式

class 类名称

{

    访问权限   类名称  (类型1 参数 1,类型2 参数 2, ......)

   {

       程序语句;

        ........     //构造方法没有返回值

   }

}

 

 (2)类与对象的关系

类:定义出一个基本的模板,代表着一个共性。对象:每一个具体的人,根据不同给予不同的姓名,代表一个个性。定义一个类,要声明成员变量(属性),然后定义方法的内容。当定义了一个类后,要使用这个类,则需要通过对象。一定要记住如果一个对象要被使用,则对象需要被实例化。在开发中,每个类可以产生多个实例化对象,只要在实例化对象时使用了关键字new,那么就表示开辟新的堆内存空间,而每一个实例化对象都将会占据自己的堆,栈内存。

 

(3)当我们创建一个类后,这一类中就会有多个对象,对象在可以被使用之前必须要被正确地实例化。

实例化作用:

1.检查类是否加载

2.分配父类型空间, 按照属性分配空间, 属性自动初始化为"零"

这两个作用是我所知道的,当然我说的可能不全面,希望以后能补充完整

 

(4)为什么私有属性要使用set跟get方法设置和访问?

将数据与行为进行分离,体现了对象的封装性,封装就是将属性私有化,提供公有的方法访问私有的属性。我个人理解就是每个人都有特定的名字跟特定的性格,不能随意修改,只有通过特定的方法才能修改,所以我们将成员变量声明为private,再通过 public的方法来对这个变量进行访问

 

 (5)我放过一个经常的错误就是,前面定义类属性的类型的时候一定要保证后面调用这个类的属性,类型一定要保证跟前面保证一致

举个例子:

private double math;

public float getMath()

{

   return math;

}

这样是不行的,前面用double,后面用float,这种数据类型的转换是不被认可的。

 

三.java中String类中常用的方法

(1)字符串与字符数组的转换

用toCharArray()方法将字符串变为字符数组

String str = "abcdef";

char c[] = str.tocharArray();

 

(2)从字符串中取出指定位置的字符

String str = "abcdef"

System.out.println(str.charAt(x));    //x为第几个字符

 

 

(3)字符串与byte数组的转换

String str = "abcdef";
byte c[] = str.getBytes();

 

 

(4)取得一个字符串的长度

Srting str = "abcdef";

System.out.print(str.length);

 

 

(5)查找一个字符串是否存在

复制代码
String str = "abcdef";

System.out.print(str.indexOf("i"));     //i为字符,即查到指定字符位置




String str = "abcdef";

if(str.contains("i"))
{

System.out.print("存在这个字符");
}
复制代码

 

 

(6)去掉左右空格

String str = " abcdef ";

System.out.print(str.tirm());

 

 

 (7)字符串截取

String str = "abcdef";

System.out.print(str.substring(i));  //i表示从那个位置开始截取,为数字

System.out.print(str.substring(0,5));  //表示从0-5截取

 

 

 (8)按照指定的字符串拆分字符串

复制代码
String str = "abcdef";

String c[] = str.split("i");   //i表示要拆分的内容

for(int i=0;i<c.length;i++)    //输出拆分的内容
{
System.out.println(c[i]);
}
复制代码

 

 

 (9)字符串大小写转换

”要转换的内容“.toUpperCase;              小写转换大写
”要转换的内容“.toLowerCase; 大写转换小写

 

 

 (10)判断是否以指定的字符串开头或者结尾

复制代码
if(str.startsWith("i"))            //i为指定的内容
{
    System.out.println("以i结尾")
}



if(str.endsWith("i"))
{
   System.out.println("以i开头");
}
复制代码

 

 

 (11)不区分大小写进行字符串比较

equals      //这个比较是区分大小写的


equalslgnoreCase   //这个比较是不区分大小写的

 

 

 (12)将一个指定的字符串,替换成其他的字符串

String str = "abcdef";     

String newstr = str.replaceAll("c","d");     //将所有的c换成d

System.out.println(newstr);

 

四.继承

  (1)类的继承格式

class 父类{}       //定义父类
class 子类  extends  父类{}      //使用extends关键字实现继承

 

通过子类继承父类

只准多层继承不能多重继承,在java中只准单继承,不能使用多重继承,即:一个子类只能继承一个父类。

 

继承注意事项

子类是不能直接访问父类的私有成员的,但是子类可以调用父类中的非私有方法,但是不能直接调用父类中的私有成员。子类直接访问父类的私有属性受限制,而要通过setter()或者getter()调用,就可以访问了

 

(2)继承的进一步研究

序号 区别点 重载 覆写
1 单词 Overloading Overriding
2 定义

方法名称相同,参数的类型

或个数不同

对权限没有要求

方法名称,参数的类型,返回值类型全部相同

被覆写的方法不能拥有更严格的权限

3 范围 发生在一个类中 发生在继承类中

 

 

 

 

 

 

序号 区别点                                   this super
1 属性访问 访问本类中的属性,如果本类中没有此属性则中父类中继续查找 访问父类中的属性
2 方法 访问本类中的方法,如果本类中没有此方法,则从父类中查找 直接访问父类的方法
3 调用参数 调用本类的构造,必须放在构造方法的首行 调用父类构造,必须放在子类构造方法的首行
4 特殊 表示当前对象 无此概念

 

 

 

 

 (3)final关键词

使用final声明的类不能又子类

使用final声明的方法不能被子类调用

使用final声明的变量即成为常量,常量不可以修改

 

  (4)抽象类的基本概念

包含一个抽象方法的类必须是抽象类

抽象类和抽象方法都要使用abstract关键声明:

抽象方法只需要声明而不需要实现

抽象类必须被子类继承,子类(如果不是抽象类)必须覆写抽象类中全部的抽象方法

 

五.

(一)在Java中可以使用instanceof来判断一个对象到底属于哪个类,对象instanceof类返回boolean类型

(二)接口可以理解为一种特殊的类,里面全部是由全局变量和公共的抽象方法所组成;与抽象类一样,接口要使用也必须通过子类,

(三)一个子类可以同时继承抽象类和实现接口。

(四)对象向上转型: 父类 子类对象 = 子类实例; 对象向下转型: 子类 子类对象 = (子类)父类实例;

(五)允许一个抽象类实现多个接口。一个接口是不允许继承抽象类的。允许一个接口继承多个接口。一个接口不能继承一个抽象类,但是可以通过extends关键字同时继承多个接口,实现接口的多继承。

 

六.  

1.抽象类和接口都不能直接实例化,如果要实例化,抽象类变量必须指向实现所有抽象方法的子类对象,接口变量必须指向实现所有接口方法的类对象。

2.抽象类要被子类继承,接口要被类实现。

3.接口只能做方法申明,抽象类中可以做方法申明,也可以做方法实现

4.接口里定义的变量只能是公共的静态的常量,抽象类中的变量是普通变量。

5.抽象类里的抽象方法必须全部被子类所实现,如果子类不能全部实现父类抽象方法,那么该子类只能是抽象类。同样,一个实现接口的时候,如不能全部实现接口方法,那么该类也只能为抽象类。

6.抽象方法只能申明,不能实现。abstract void abc();不能写成abstract void abc(){}。

7.抽象类里可以没有抽象方法

8.如果一个类里有抽象方法,那么这个类只能是抽象类

9.抽象方法要被实现,所以不能是静态的,也不能是私有的。 

10.接口可继承接口,并可多继承接口,但类只能单根继承。

区别点 抽象类 j接口
定义 包含一个抽象方法的类 抽象方法和全局变量
组成 构造方法,抽象方法普通方法,常量,变量 常量,抽象方法
使用 子类继承抽象类 子类实现接口
关系 抽象类可以实现多个接口 接口不能继承抽象类,但可以继承多个接口
常见设计模式 模板设计 工厂设计,代理设计
对象 都通过对象的多态性产生实例化  
局限 抽象类有单继承的局限 接口没有单继承的局限
实际 作为一个模板 是作为一个标准或是表达一种能力
选择 如果抽象类和接口都可以使用,有限使用接口,避免单继承的局限  
特殊 一个抽象类中可以包含多个接口,一个接口中可以包含多个抽象类  

 

 

 

 

 

 

 

 

线程操作的主要方法

 

1.在Thread类中,可以通过 getname() 方法取得线程的名称,通过 setname()方法设置线程的名称

2.判断线程是否启动
因为线程通过Thread类之中的start()方法通知CPU这个线程已经准备好启动,然后就等待分配CPU资源,运行此线程。在Java中可以使用isAlive()方法来测试线程是否已经启动而且还在运行

3.线程的休眠
可以直接使用Thread.sleep()方法即可实现

4.线程的强制运行
可以使用join()方法让一个线程强制运行。在线程强制运行期间 其他线程无法运行,必须等待此线程完成之后才可以继续执行

5.中断线程
当一个线程运行时,另外一个线程可以直接通过interrupt()方法,中断其运行状态

6.线程的优先级

在Java线程操作中,哪个线程优先级高就有可能先被执行 所以可以使用setPriority()方法可以设置一个线程的优先级

7.线程的礼让
使用yield()方法可以将一个线程的操作暂时让给其他线程执行

 

JPanel

方法 类型 描述
public JPanel 构造 创建一个默认的JPanel对象,使用流布局管理器
public JPanel(LayoutManager layout) 构造 创建一个指定布局管理器的JPanel对象

 

 

 

 

JSplitPane

 

JTabbedPane

 

 

JScrollpane

 

 

JTextComputer

 

JTextField

 

JPasswordField

 

 

JTextArea

 

windowListener

 

 

posted @ 2019-12-13 10:34  你听说过妖刀吗  阅读(114)  评论(0编辑  收藏  举报