• 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

  • 相关阅读:
    CSZ CMS 1.2.7 xss分析与复现
    蚁剑改造过WAF系列(一)
    代理池
    二维码劫持案例分析
    入门KKCMS代码审计
    Xposed+XServer无需脱壳抓取加密包
    通达OA前台任意用户登录分析
    ATutor学习内容管理系统任意文件上传漏洞(CVE-2019-12169)分析
    调试System.AggregateException-即使在异步代码中也是如此
    关于System.Exception
  • 原文地址:https://www.cnblogs.com/datapool/p/6130992.html
Copyright © 2020-2023  润新知