Java基础教程学习笔记

Java基础教程

学习大纲:

  • 面向过程,循环、分支、判断
  • 面向对象,类,封装、继承、多态
  • 注释、泛型及枚举

JAVA的用途

  • 网页web开发及后台开发
  • 大数据分析
  • Android应用开发
  • 桌面GUI
  • 软件开发
  • 视频游戏开发

第一章 面向过程

(1)整数类型:
最小整数类型是byte,它是有符号的8位类型,范围从-128~127.如byte b = 100;
其余常见的整数类型有:short、int、long

(2)字符类型:
char类型用于存储字符,在JAVA中字符是用Unicode来编码的,所以插入类型可以试字符,也可以是数字,对应的Unicode表中的字符。
比如:char ch1 = 'Y';char ch2 = 89;

(3)算术、布尔、三元、关系运算符:
和c++一样。

(4)if、for、while、break、continue、注释语句
和c++一样

第二章 面向对象

1、类

如下所示:

class Box {
    int width;
    int height;
    int depth;

    void take();
}//声明Box类

public class Main {
    public static void main(String args[]) {
    Box myBox = new Box();         //实例化
    myBox.width = 10;              //给width属性赋值
  }
}

其中Box即为声明的类,下面main方法中实例化,并给属性赋值。

(1)嵌套类

–JAVA匿名类

直接new对象,没有实际的类变量,形如下所示:

new Box(){
    xxxxxx....xxxx;
}.take();

(2)局部类

通俗点讲,就是类的方法里声明一个类,该类只能在改方法内使用,形如下所示:

class MyClass {
    void myMethod(final int x) {
    final int y = x;

    class LocalClass {
      int a = x;
      int b = y;
    }

    LocalClass lc = new LocalClass();
    System.out.println(lc.a);
    System.out.println(lc.b);
  }
}

(3)成员类

与局部类不同的是,成员类是作为大类的一个属性存在的,形如下所示:

class EnclosingClass {
  private int outerVariable;

  private void privateOuterMethod() {
    System.out.println(outerVariable);
  }

  class EnclosedClass {
    void accessEnclosingClass() {
      outerVariable = 1;
      privateOuterMethod();
    }
  }
}

(4)静态成员类

顾名思义,就是静态类型的成员类。

(5)抽象类

如下所示,是一个抽象类的具体应用

abstract class MyAbstractClass {
  abstract void callme();

  void callmetoo() {
    System.out.println("This is a concrete method.");
  }
}

class B extends MyAbstractClass {
  void callme() {
    System.out.println("B"s implementation of callme.");
  }
}

public class Main {
  public static void main(String args[]) {
    B b = new B();
    b.callme();
    b.callmetoo();
  }
}

解释:
抽象类是一种定义抽象概念的类,通常作为父类被子类继承。他可以定义抽象方法,也可以定义实体方法。需要注意的是,抽象方法是不能有实体实现过程的。其中extends代表着B类继承MyAbstractClass类,并具体实现了父类的抽象方法。

2、变量类型

(1)引用类型

如下所示:

Box b1 = new Box(); 
Box b2 = b1;

其中,**b1到b2的赋值没有分配任何内存或复制任何部分原始对象。 它简单地使b2指向与b1相同的对象。因此,通过b2对对象所做的任何更改将影响b1所引用的对象。
对b1的后续赋值将简单地从原始对象中解除b1而不影响对象或影响b2**。(注意点1)

在参数传递时,引用类型参数在方法内被修改,在外面也是会被影响的。(注意点2)

(2)值类型

这个就比较简单了,你就是你,我就是我,互不干扰。

3、静态方法

需要注意的是,JAVA中的静态类只有静态内部类(嵌套类)。

静态方法有下面几个限制:
- 他们只能调用其他静态方法
- 他们只能使用静态变量
- 他们不能以任何方式引用

如下所示:

public class Main {
  static int a = 3;
  static int b;

  static void meth(int x) {
    System.out.println("x = " + x);
    System.out.println("a = " + a);
    System.out.println("b = " + b);

  }

  public static void main(String args[]) {
    Main.meth(42);
  }
}

第三章 注释、泛型及枚举

1、注释

算是我接触JAVA以来的一大特色吧,尤其在用spring boot快速搭建JAVAweb项目时。在spring boot框架中大量使用注释来简化代码量。
具体使用如下:

 @MyAnno(str = "Annotation Example", val = 100)
 public static void myMeth(){xxxxx...xxxx}

具体使用还得查看具体的开发文档。

2、泛型

泛型和c#语言中的含义一样,反正刚开始接触有点蒙,说白了它就是一种代表着类型的变量。比如我们所知道的int变量代表的是整数,String变量代表的是字符串。
而泛型代表着的就是类型。如下所示:

// 在泛型类型中声明多个类型参数
class TwoGen<T, V> {
  T ob1;
  V ob2;
  TwoGen(T o1, V o2) {
    ob1 = o1;
    ob2 = o2;
  }
  void showTypes() {
    System.out.println("Type of T is " + ob1.getClass().getName());
    System.out.println("Type of V is " + ob2.getClass().getName());
  }

  T getob1() {
    return ob1;
  }

  V getob2() {
    return ob2;
  }
}

public class Main {
  public static void main(String args[]) {
    TwoGen<Integer, String> tgObj = new TwoGen<Integer, String>(88, "Generics");  //具体实例化,常用的是List<T>和Hash<T,V>
    tgObj.showTypes();
    int v = tgObj.getob1();
    System.out.println("value: " + v);
    String str = tgObj.getob2();
    System.out.println("value: " + str);
  }
}

3、枚举

优势在于定义枚举后,可以创建该类型的变量。即使枚举定义一个类类型,你不使用new实例化一个枚举。

如下所示:

// An enumeration of direction varieties. 
enum Direction {
  East, South, West, North
}

public class Main {
  public static void main(String args[]) {
    Direction dir = Direction.South;

    System.out.println("Value of dir: " + dir);

    dir = Direction.South;

    if (dir == Direction.South){
      System.out.println("ap contains GoldenDel.\n");
    }
  }
}

猜你喜欢

转载自blog.csdn.net/liu14lang/article/details/81040380
今日推荐