最近再一家公司里跟岗,对于培训内容真的一时间接受不了这个难度,所以想从基础入手,写此文章以作复习记录。因为是自己自学的肯定有许多纰漏,所以请大佬们多多谅解!


Java的基础语法

  1. 了解基本概念
    • 对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。
    • :类是一个模板,它描述一类对象的行为和状态。(内核对象后面具体写)
    • 方法:分为非静态方法和静态方法
      • 非静态方法:就是没有static修饰的方法,对于非静态方法的调用,是通过对象来调用的

        对象名.方法();

        eg:
        public class t{
        public static void main(String[] args){
        t.in = new t();
        in.t1();
        }
        public void t1(){
        System.out.printfln("t1");
        }
        }
      • 静态方法:静态方法就是用static修饰的方法,静态方法的调用是通过各种类名来调用的

        类名.方法();

        eg:
        public class t1{
        public static void main (String[] args){
        t1.t2();
        }
        public static void t2(){
        System.out.println("static t2....");
        }
        }
    • 实例变量:每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定。
  2. 编写Java时需要注意的几点:
    • 大小写敏感:Java 是大小写敏感的,这就意味着标识符 Hello 与 hello 是不同的。
    • 类名:对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如 MyFirstJavaClass 。
    • 方法名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。
    • 源文件名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。
    • 主方法的入口:所有的 Java 程序由 public static void main(String[] args) 方法开始执行。
  3. Java关键字:
    • 访问控制
      • private:私有的,限制的最窄的修饰符,一般称之为“私有的”。被其修饰的类、属性以及方法只能被该类的对象访问,其子类不能访问,更不能允许跨包访问
      • protected:保护的:对于子女、朋友来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private
      • public:被其修饰的类、属性以及方法不仅可以跨类访问,而且允许跨包(package)访问
      • default:通常称为“默认访问模式“。该模式下,只允许在同一个包中进行访问。
        总结
    • 类,方法和变量修饰符
      • abstract:申明抽象,抽象类不能被实例化。因为抽象类中方法未具体化,这是一种不完整的类,所以直接实例化也就没有意义了。抽象方法是只有方法签名,没有方法实现的方法。抽象方法和抽象类必须使用abstract修饰符来定义,有抽象方法的类只能被定义为抽象类,抽象类里可以没有抽象方法。

        可能突然给你一大串概念有点小懵,抽象类到底怎么写,有什么好处,容我一一道来,来个案例先来写写看eg:
        //定义一个抽象类
        abstract class Person{
        String name; //人的名字属性
        //定义一个抽象方法
        /*
        * 如果我们需要定义一个学生类和职工类,而他们的共同行为就是打游戏,但学生玩的是lol,而职工玩的是永劫无间,我们就需要定义一个抽象方法来描述他们共同的行为
        */
        public abstract void game();
        }
        抽象类无法被直接实例化,我们可以让子类继承然后实例化子类
        //学生类
        class student extends Person{
        //继承抽象类后抽象类中的抽象方法必须在子类中实现
        public void game(){
        System.out.println(name+"学生在玩lol");
        }
        }
        //工人类
        class worker extends Person{
        public void game(){
        System.out.println(name+"工人在玩永劫无间");
        }
        }
        class Main{
        public static void main(String[] args){
        student stu = new student();
        worker w = new worker();
        w.name="李四";
        w.game();

        //实例化子类
        stu.name="张三";
        //给予属性赋值
        stu.game();
        //调用子类方法
        }
        }
        如何来理解抽象类呢,或者说抽象类有什么优点呢?举个例子,在生活中一段普通的对话,小王,你把那个东西拿过来好吗和小王,你把这个水杯拿过来好吗。一个是“东西”,一个水杯,在关系上,你要的是水杯类的对象,而“东西”是水杯的父类,通常“东西”没有实例化的对象,但我们有时需要“东西”指引他的子类实例,你的房间东西怎么乱放了!这个东西怎么这么烦!又是个“东西”它可以代表一个数组,一个日期,反映到代码层面
        我现在要写一个关于俄罗斯方块的游戏,我抽出其中两个类,一个就是游戏界面的类,那个方框框,还有一个是方块。先说房子,房子应该有个属性是方块,当一个方块落下后,再创建一个方块。然后房子变化的是当前方块,他是房子的一个属性,所以说我们要选6种类,来表示这个方块。然而我们写一个方块类,他派生出6个子类,加入翻转方法,让子类来重写翻转方法,你可以在父类的翻转方法中不写任何代码,方块类写成抽象类,翻转方法写成抽象方法,这就是抽象类的好处(新任务又发过来了,又要开始写bug了,先写到这儿了)
    • 程序控制语句
    • 错误处理
    • 包相关
    • 基本类型
    • 变量引用
    • 保留关键字