Java学习笔记1

public class Animal{
 private String name;
 public String getName(){   // String表示getName()方法返回一个String
  return name;
 }
 public void setName(int newName){  // void表示setName()方法没有返回值
  name = newName;
 }
}

// 方法的签名是由方法名称和参数列表组成,不包括返回值类型和访问修饰符

public int numberVisitors(int month) // 返回类型为int,参数名为month,也是int类型

// comments
// 单行注释
/* 多行
 * 注释
 */

/**
 * Javadoc多行注释
 * @author HR and Scott
 */


类和文件: 文件名(*.java)必须和public类名一致,包括大小写,且文件扩展名必须为.java

主方法是Java程序执行的入口.

主方法的固定写法:
public statc void main(String[] args){}

示例程序:
public class Zoo{
 public static void main(String[] args) {

 }
}

public表示该方法可在程序的任意位置被调用
static表示该方法可以直接通过类名调用,如Zoo.main()
void表示返回类型.一个没有返回值的方法安静地返回控制权给它的调用者
String[] args: 表示main方法的参数是一个String类型的数组,参数名为args.可以写成其他形式: String args[] 或 String... args

包(package)和导入(import):   // 参考Java API chm文档

类按包进行分组
import语句告诉Java去哪个包找相应的类

最佳做法是将Java源文件和类文件分开存放,可以在编译时使用-d选项设置编译后类文件产生的位置: 
 javac -d ./classes Zoo.java   // 命令成功执行后,Zoo.class文件将被放在当前工作文件夹下的classes子文件夹下

// 在导入类时使用通配符* 
import java.util.*;          // 导入java.util包中的所有类
public class ImportExample{
 public static void main(String[] args){
  Random r = new Random();                // 虽然导入了所有类,但编译器只会从中挑出真正需要的类
  System.out.println(r.nextInt(10));
 }
}

要么只导入我们写代码时实际需要的类,要么使用通配符来导入所有的类,前者使代码更易读,后者精简了导入清单

java.lang包中的一切都是被自动导入的,无需使用import语句显式导入

在导入时,只能导入类和静态成员

注意在导入包时,避免冗余导入:
import java.lanag.System;    // 该行冗余
import java.lang.*;    // 该行冗余
import java.util.Random;
import java.util.*;    // 该行冗余
public class ImportExample{
 public static void main(String[] args) {
  Random r = new Random();
  System.out.println(r.nextInt(10));
 }
}

类名冲突:
import java.sql.Date;   // 导入指定的类比使用通配符*的优先级高,不管该语句在何位置
import java.util.*;   // 不能使用import java.util.Date,否则编译器报错
public class Conflicts{
 Date date;
 // some more code
}


编译带包名的代码:

C: emppackageaClassA.java
package packagea;
public class ClassA {
}

C: emppackagebClassB.java
package packageb;
import packagea.ClassA;
public class ClassB {
public static void main(String[] args) {
 ClassA a;
 System.out.println("Got it");
}
}

编译(假定当前目录为C: emp):
javac packageaClassA.java packagebClassB.java

运行:
java packageb.ClassB


创建对象:

构造方法(Constructors)

 Random r = new Random();
 等号左边创建了一个Random类型的引用变量r
 new Random()创建了一个对象

程序示例:
 public class Chick{
  public Chick(){
   System.out.println("in constructor");
  }
 }

记住两个要点:
 1. 构造方法名与类名一致;
 2. 构造方法没有返回类型.

构造方法的作用就是初始化成员变量

public class Chicken{
 int numEggs = 0;    // 声明并同时初始化成员变量
 String name;
 public Chicken(){
  name = "Duke";  // 在构造方法中初始化成员变量
 }
}

break与continue

break 不带标签,默认行为是跳出最内层的循环
continue不带标签,默认行为是跳过内层本次循环

null指针和null值

对象 String

原文地址:https://www.cnblogs.com/datapool/p/6130992.html