Basic Java Skills

1. Java的工作方式:

源代码文件(.java)→编译器产出字节码(.class)→JVM读取与执行字节码

cmd运行java文件:

        输入:

                cd/d 文件所在文件夹

                javac 名称.java

                java 名称

        得到结果

        部分java指令:

java skill java skills_java


java文件组成:class

.java

class(一到多个)

method1

variable

main method(每个应用必须有且只有一个main)

variables

byte

>=0

short

>=0

int

>=0

long

>=0L

float

0.0f

double

0.0d

boolean

true or false

char

'\u0000'

statements

运算

++ --;+ - * / %;&& || !;? : ;> <

逻辑

while;do while;for

if else; switch case

continue;break


2. Java文件编写

1.访问权限关键字

java skill java skills_java skill_02

2.class:

public/*公开给其他class存取*/ class/*类声明*/ Cat/*名称*/{

 }
  • 在一个.java文件中,有且只有一个public修饰的class,用public修饰的class的类名和文件名必须一致
  • 如果不含main的class只想被main调用,可以去掉public并写在一个.java文件

3.method:

public/*公开给其他类存取*/ static/*静态类*/ void/*returnType*/ main/*methodName*/ (String[] args(*/parameters*/)){ 
}
  • parameter=形参 (formal parameter),用来定义函数
  • argument=实参 (actual parameter),函数真正使用的

4.三种注释方法

○ // single line comment
○ /* many line comments, 
    end with */
○ /** 
  * comments here go
  * in a javadoc file 
  */

5.变量声明

  • 变量在使用前要先进行变量声明
  • 变量声明可以在任意地方(method中,传参中,返回类型中)
  • 声明方式:变量类型+名称,如 int Cat=5;
  • 在class中声明变量,不写“=”也会自动给null,如下图的 *;而在method中则不会自动赋值null,如下图,去掉 ** 的//,就将编译错误
  •  类型与赋值必须匹配
  • 名称:
  • 变量、method以小写字母开始,按照驼峰式;class以大写字母开始
  • 名称不能与任何关键字重合

6.statement

        1.postincrement: i++   postdecrement: i--

        先将i+1的值放到一旁,i的值暂时不变,在当前运算结束后自增1

java skill java skills_java skill_03

java skill java skills_构造器_04

         2.preincrement: ++i   predecrement: --i

         直接给i值加1

java skill java skills_构造器_05

java skill java skills_开发语言_06

         3.类型转换:

         (要转成的类型)要转的值;

java skill java skills_开发语言_07

         只能从大转小,不能从小转大 

        4.条件语句 

        判断对象?结果1:结果2;

a=(test? b:c)// if test is true, a=b; else a=c

        5.outer & inner

        都是标签,后面紧跟的冒号,相当于{},可以给一部分代码打上标签

        如果想跳出它所代表的循环,那么就break outer;

        如果想结束它所代表的此次循环,那么就continue outer;

        6.输出函数

        System.out.println(内容1+内容2+内容3);

      


Object-Oriented programming

根据对象的变化,利用class的继承与修改,轻松实现新的要求的增删而不用破坏以前的代码

1.Object

本质:一个对象,拥有一个class做设计图纸,JVM根据class创建对象

class

attribute

instance variable 实例变量

class variable 类变量

method

constructor 构造器

accesor/getter 获取器

mutator/setter 设置器

应用method

实例变量

    1.java会自动定义class中的变量(实例变量)为默认值,但对于method中的变量就没有此待遇

java skill java skills_开发语言_08

        2.一般class会封装起来,所以将实例变量设置为private

constructor

    1.格式:public class名 (参数){}

                构造器必须与类同名(如果一个源文件中有多个类,那么构造器必须与公共类同名)

                构造器可以有0个、1个或1个以上的参数

    2.每个类可以有一个以上的构造器,同名但参数和语句不同

    3.构造器没有返回值

    4.构造器总是伴随着new操作一起调用

    5.不添加任何构造器会默认有空的构造器

java skill java skills_jvm_09

accesor 和 mutator:

    1.一种访问private东西的方法,可以不用将东西设为public,而在class增加这两种public函数

    2.获取器Accessor/getter:返回一个类的变量或其值

    3.设置器Mutator/setter:设置类变量指针或其值

java skill java skills_java skill_10

     4. 构造器可以代替这两者的功能,只需要传入参数即可


2.Testclass

一般会对于图纸class设计一个测试class以测试功能

java skill java skills_构造器_11

步骤1:创建一个指向该object的遥控器

java skill java skills_java skill_12

创建一个rabbit类型的容器b

java skill java skills_java skill_13

创建一个rabbit对象

java skill java skills_开发语言_14

将控制rabbit对象的遥控器给容器b

java skill java skills_jvm_15

步骤2:调用该object的method

        1.constructor调用:

        已知:

java skill java skills_构造器_16

        testclass: 

java skill java skills_jvm_17

        2.getter和setter调用

        已知:

java skill java skills_开发语言_18

         testclass:

java skill java skills_java skill_19

         3.两者结合

java skill java skills_开发语言_20


3.class的提取与继承

abstraction:从所有已有class中提取相同的method

java skill java skills_开发语言_21

inheritance:从一个父class中衍生出的子class都可以继承及重新定义父class中的method

java skill java skills_jvm_22