类和方法的初步学习

2016.04.16 11:12

本周事情比较多,大家的时间总是不太好凑,所以到了周五才开了2A的课,不过也由于开课较晚的缘故大家有了更多时间进行预习,本课信息量颇大,涉及到一些真正与java代码相关的内容,有了前面的预习感觉对大家在课上的理解更有帮助。

类&方法

在布局内容结束之后,终于开始介绍按钮以及让点击按钮触发一些事件的方法,本视频介绍的是利用button自带的“onclik”属性

android:onClick="theButtonIsCliked"

其中“theButtonIsCliked”就是对应的方法名称(当然视频中用的并不是这个名字),而这个方法需要我们在对应的java文件中进行创建,这个文件在哪呢,其实在xml文件中也已经告诉了我们,看当前布局xml文件的根视图(root view)的属性中有一条这样的内容

tools:context="com.example.justjavacal.MainActivity"

后面那串“com.example.justjavacal.MainActivity”就是对应的文件了,至于他的位置可以在左侧导航栏中找到

马老师TIPS时间:
视频中context后面只有“.MainActivity”前面省略了包名“com.example.justjavacal”,这种写法和完整的写法都是可以的,这一行内容代表当前XML所对应的java文件是哪一个,但在实际使用过程中有时候没有这一行也不影响使用,原因下面还会讲到

找到对应的java文件打开后看到的就是货真价实的程序代码了,大多数人应该都会像视频中所说的那样一头雾水吧😂

package com.example.justjavacal;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

虽然视频里告诉我们不用慌,并且也确实没有在解释这些代码具体是什么意思上着墨太多,不过我们马老师还是在此处大概介绍了一下类和方法的

马老师TIPS时间:

public class MainActivity extends AppCompatActivity

大致可以翻译为
"套用(继承)‘AppCompatActivity的基础属性然后新建一个叫‘MainActivity’的类"
花括号内的 "@Override" 表示接下来的这个方法原本的“AppComatActivity”中就具备了这样一个方法,而我们所创建的这个类需要做一些不一样的操作,所以需要重写这个方法,写 "@Override" 就是通知编译器这个方法要调用我们写的新方法而不是去用原本自带的同名方法
在类里面那些都是方法,声明方法的那句话理解起来跟创建类的十分相似,这里用视频中的“display”方法举例比较好理解
private void display(int number)

大致就是说“创建一个叫做“display”的方法,然后在调用这个方法的时候应该带一个参数过来,这个参数应该是int整数类型的(integer缩写),然后给这个参数起了一个方法内部使用的名字叫number,这样就方便在方法中使用这个从外部带进来的参数(类似下面会说到的本地变量),另外void表示这个方法不会返回任何特定的内容(同理可知另外还有有返回内容的方法不过暂时没提到)
还有public和private这些东西叫做访问修饰符,意思是当前这个类/方法允许被访问的权限开放等级
* public——允许所有其他类访问并调用
* private——仅支持当前类内访问调用
* protected——仅允许同一包内的类访问并调用
* default——允许同一包内类以及其子类访问调用

变量

当某个数值有变化的需求时,应当将这个值定义成变量,这样使用起来更方便(尤其是在引用较多又频繁需要变化时),视频中用了比喻的手法十分形象地表现了定义变量以及给变量赋值的过程。
变量本身并没有太多难以理解的地方,主要要注意以下一些东西:

  • 声明变量时必须声明其类型,但初始值可以不设置而用默认值
  • 在类中声明的变量才能被类中所有的方法共用——也就是通常所说的全局变量(相对当前的类而言)
  • 方法中声明的变量叫做本地变量,只有在当前方法中可以使用,无法被其他方法调用
  • 本地变量可以与全局变量同名,如果同名,在方法体内调用该变量时会默认使用本地变量(本地变量与全局变量在IDE中会显示不同的颜色便于区分)
  • 没有声明过的变量是不能使用的,IDE会报错
  • 声明以后没有使用的变量在IDE中也会有提示,如果确定没用可以删掉也无妨

Debug

写程序过程中各种BUG一定将会如影随形,伴随整个生涯,而遇到各种BUG以后找到问题所在并通过思考解决则是程序员基础生存技能
视频讲述了如何通过打断点的方式来定位程序的运行情况并定位出错节点

  • 在需要设置断点的代码前点一下,看到红色小圆点出现就说明已经成功了
  • 运行的时候不要直接按小三角“run”键,而要点右边那个像一直小虫子的按键
  • Debug模式运行以后会根据代码的运行顺序在断点处停止运行,然后在下方log窗口可以查看当前的信息,并可以点击下一步逐渐查看不同断点的信息,用来了解运行的顺序及实时状态

其他

注释

视频中说明的是多行注释的方法格式如下:

/**
前面加一个'/**'
中间就可以这里可以写注释
而且可以自由换行
最后一行来一个'*/'
*/

另外马老师也给我们介绍了常用的单行注释的格式

// 这样前面放两个“/”号就可以在后面写注释啦,通常这种注释会写在需要注释的代码上一行,也有跟在需要注释的代码后的

写好注释是非常重要的一件事,可以方便别人以及自己日后查看代码时可以更快理解代码的意图

伪代码

伪代码是相对于真正的代码而言的,是指并没有使用计算机语言,但是完全按照写代码的逻辑去描述代码需要处理的步骤和过程。
在写代码之前先通过伪代码来整理思路,可以更好地理清逻辑之间的相互关系,这样在后期编码时可以更快更有效率

Comments
Write a Comment