1. 什么是java?
Java和c,c++一样都是一种和计算机通信的语言。和c,c++不同的是,java是有一个独特的java虚拟机,将各平台的写的java语言翻译成字节码。在苹果机上面写的java程序可以在windows上面运行,得益于java虚拟机。
2. 语言的学习,核心的任务是学习该门语言的核心思想。代码的练习可以通过努力来实现。
Java的核心思想是面向对象和面向过程。那么,什么是对象呢?对象是一个个实际存在的物体,人,树,木,狗等等。人有小孩,青年,壮年,老人等,他们都具有共同的特征,比如:吃饭,睡觉,聊天,走路,等等。人们把具有这些特征的物体抽象成类。由此可以看出,对象是实际存在的,而类是以人的主观意识而存在的。生活中要完成一件事情的话,首先需要一个完成这件事情的对象,即是由谁来完成这件事,然后需要的是该怎么样来完成这件事。即:一件事情=对象(执行者)+方法(如何来做)。那么什么事面向对象,面向过程呢?面向,就是面对的意思,也就是关注点的意思,面向对象,也就是侧重点在对象(执行者)上面,面向过程的关注点在过程(如何来做)。
举个例子。老师给学生们上课,学生们的关注的是自己能不能学会(结果),老师关注的是上课过程中学生们能不能认真听讲(过程)。
面向对象----关注对象(关注事情的执 行者是谁)->>结果不确定(灵活)
面向过程----关注过程(关注事情的执行流程是怎么样的)->>结果确定(死板)
3. 下面通过一个简单的示例来解释一下什么是面向对象和面向过程,
张三老师给李四学生上课。看起来一个简单的语句,分析一下。
张三老师-----一个对象(执行者)
给李四学生上课----对象的执行行为。(过程)。
如果通过java语句来输出这句话呢(要体现面向对象和过程的思想)
首先建立一个java Project,构造出一个老师类,
在方法中,可以传入参数,也可不传入参数。是否传入参数的关键在于,实现这个方法所需要的条件,我在这里传入了一个string类型的参数,用来表示老师给谁上课。
测试一下老师类,
在这个测试类中,public static void main是这个项目的接口,只有通过这个接口才能执行所写的程序,每个项目必须要有而且仅有一个接口。Teacher t,声明老师类中一个对象,在这个类中,代号为t。t.name表示这个老师的名字。后面就是一些赋值。
运行的结果如下
通过这个例子我们清楚的了解了面向对象和面向过程。
下面我们来实现一个小的项目,利用写的程序,控制电脑关机,打开计算机上面的qq。
首先了解一下基本语法。
基本语法:
1)一个类对应一个java文件
2)属性(特征)的定义格式:public 类型 属性名;
3)方法(行为)的定义格式:public 返回类型 方法名(参数列表){}
4)创建对象的格式:类名对象名 = new 类名();
5)调用属性:对象名.属性名
6)调用方法:对象名.方法名(具体内容)
如果不清楚的话,请自行百度。
首先写出一个窗体,
运行结果如下
在这里需要注意几点,窗体建立后默认是不可见的,所以我们要使setvisible为true。
然后创造出来的界面,需要设置默认关闭的按键。使用的语句是,jf.setDefaultCloseOperation(3);
创建出来窗体后,我们要设置按钮,
运行上面的代码得到下面的界面,此时那些按钮,点击是不会出现什么效果的。
在添加按钮时,注意几点,首先需要添加布局管理器,如果没有添加,那么最后只会有一个按钮,之前的按钮全被覆盖。创立的按钮务必要添加到窗口。
下面就是如何实现上面按钮的功能了,点击按钮时,他们该如何知道呢,这就需要添加监听器,在java’的方法中,有
ActionListener action = new ActionListener(){
public voidactionPerformed(ActionEvent e) {
下面是用str来接收点击时获得的信息。
String str = e.getActionCommand();
再将它们和按钮上面的信息比对,就知道鼠标点击的操作是什么了。
if("关机".equals(str)){
这是java中比对信息的方法。满足的话,就会
//获取系统操作对象
Runtime run = Runtime.getRuntime();
//通过run运行一个命名
try {
run.exec("shutdown -s-t 10000");
} catch (IOException e1) {
e1.printStackTrace();
}
执行命令。其它命令也会执行类似的操作。
贴上关于监听器的完整的的代码 //3.添加警报器(监听器)
ActionListener action = new ActionListener(){
public void actionPerformed(ActionEvent e) {
//监听过程:获取文本
String str = e.getActionCommand();
if("关机".equals(str)){
//获取系统操作对象
Runtime run = Runtime.getRuntime();
//通过run运行一个命名
try {
run.exec("shutdown -s-t 10000");
} catch (IOException e1) {
e1.printStackTrace();
}
//修改按钮上的文字
jb1.setText("取消关机");
}else if("打开浏览器".equals(str)){
//获取系统操作对象
Runtime run = Runtime.getRuntime();
//通过run运行一个命名
try {
run.exec("explorerhttp://www.qq.com");
} catch (IOException e1) {
e1.printStackTrace();
}
}else if("运行QQ".equals(str)){
//获取系统操作对象
Runtime run = Runtime.getRuntime();
//通过run运行一个命名
try {
run.exec("C:/ProgramFiles (x86)/Tencent/QQ/Bin/QQ.exe");
} catch (IOException e1) {
e1.printStackTrace();
}
}else if("取消关机".equals(str)){
//获取系统操作对象
Runtime run = Runtime.getRuntime();
//通过run运行一个命名
try {
run.exec("shutdown-a");
} catch (IOException e1) {
e1.printStackTrace();
}
//修改按钮上的文字
jb1.setText("关机");
}
}
};
注意写完监听器后,要将这些监听器添加到按钮上面去。
//安装监听器到按钮上
jb1.addActionListener(action);
jb2.addActionListener(action);
jb3.addActionListener(action);
}
那么整个项目就完成了。下面我们看一下运行的效果吧。
这就是我的第一节课
第二节课,这节将学习构造器,方法重载,继承,方法重写,自动转型,和多态。
1, 一般的方法的格式为:public:返回类型 方法名(参数列表)
构造的方法格式为:public:类名(参数列表);
那么他的作用是什么呢?
他是在创建对象的时候就自动调用。为你创建的对象在内存中划出一块空间。
他创建java对象的重要途径,对系统产生的对象进行初始化,并将该对象作为返回值返回,使得外部程序可以访问。
2方法重载
就是同一个类中,多个方法的方法名字相同,但参数列表不同的方法,互为重载方法,举个简单的例子,例如java中输出两条与句时,中间有一个”+”号,这也是重载。
一般情况下,在构造函数中,重载的比较多。他的作用是初始化对象。
3 继承。
如果每一个类的所以方法都是自己写的,那么写一个程序需要的代码是十分多的,继承为了不用写那些多余的代码。那么什么是继承呢,继承就是子类继承父类所有的非私有的属性和方法。使得子类比父类的功能更加强大,比如每一个老师都是人类,但,每个人不一定都是教师,教师比普通的人类具有教书的方法。
继承的关键字为extends,后面的示例中展示继承。
4. 方法重写,
方法重写是针对继承而言的,子类重写父类的方法,需要强调的是,方法名,返回类型,参数列表必须相同。如果参数列表不同,那就是在子类中重载。需要注意的是,子类重写了父类的方法后,使用该方法,默认的就是重写后的方法,如果想调用父类的方法,需要父类的类名.方法名。
5. 自动转型,
子类类型的对象自动转为父类类型的引用,最终是父类的,转型之后,如果调用的方法是子类重写的,那么父类对象调用的方法是子类类型重写的。
B是父类,有一个输出B的方法。
A是子类,继承了B类,并且重写了B类的方法,输出A;
这里创建了两个对象,对象a,和对象b,b=a;是不同的两个对象的赋值,这就是类型的转换。
举个例子,
因为A重写了B中的输出方法,然后将子类中的a,赋值给父类的b,父类b调用的输出方法就是重写后的方法。
6多态
例子如下图
再创造一个B类对象c,c调用b类的输出方法,结果如下,
都是B类的对象b,和c。他们调用了输出方法,但执行后的结果是不一样的,这就是多态。
对于第一次课上讲的界面小工具,用继承的方法来重写一下。
在这里强调几点。
1,,main函数是程序接口,调用方法就可以了,不要在里面实现内容。
2, ComputerOperationFrame extendsJFrame表示该类继承了Jframe,所以可以直接创建窗体。
3, 我把窗口设置,按钮控制等封装在initJFrame方法中。窗体conf可以调用该方法来实现所有功能。其中的this指的是调用这个方法的对象,也就是conf。