您的位置:首页 > 编程语言 > Java开发

java学习的第一课

2016-05-30 23:10 274 查看
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);

创建出来窗体后,我们要设置按钮,

4000

运行上面的代码得到下面的界面,此时那些按钮,点击是不会出现什么效果的。

在添加按钮时,注意几点,首先需要添加布局管理器,如果没有添加,那么最后只会有一个按钮,之前的按钮全被覆盖。创立的按钮务必要添加到窗口。

下面就是如何实现上面按钮的功能了,点击按钮时,他们该如何知道呢,这就需要添加监听器,在java’的方法中,有
ActionListener action =
new
ActionListener(){
           public
void
actionPerformed(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。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: