zoukankan      html  css  js  c++  java
  • 11、Java基础知识

    1、安装jdk,配置环境变量

    2、public class HelloWorld{

         public  static void main(String[] args){

           System.out.println(‘HelloWorld’);

      }

    }

    3、编译过程:通过javac编译java文件,生成.class文件,使用java命令运行class文件,注意不能带class后缀名。

    4、数据类型:基本数据类型变量存的是数据本身,而引用类型变量存的是保存数据的空间地址。

    基本数据类型:整数型、浮点型、字符型、布尔型

    引用数据类型:类、接口、数组

    5、自动类型转换:Int类型和double类型相加会转换成double类型。

    强制类型转换:(int)double类型的值.

    6、自增、自减:

    Int a=5;

    Int b=a++;(先赋值给b,再自增)结果:a=6 b=5

    Int b=++a;(先自增,后赋值给b)结果:a=6 b=6

    7、条件运算符(三目运算符):布尔表达式表达式1 :表达式2

    8、用户输入实现 步骤:

    导入Scanner包:import java.util.scanner;

    创建Scanner对象:Scanner input =new Scanner(system.in);

    接收用户输入的值并保存在变量中:Int a=input.nextInt();

    9、定义数组:int[] scores={78,90,65,87}

    定义一个长度为 3 的字符串数组,并赋值初始值:String[] hobbys = { "sports", "game", "movie" };

    定义一个整型数组,并赋初值:int[] nums = new int[] { 61, 23, 4, 74, 13, 148, 20 };

    10、使用 Arrays 类操作 Java 中的数组:

    导入Arrays类import java.util.Arrays;

    // 定义一个字符串数组

    String[] hobbies = { "sports", "game", "movie" };

    // 使用Arrays类的sort()方法对数组进行排序

    Arrays.sort(hobbies);

    // 使用Arrays类的toString()方法将数组转换为字符串并输出

    Arrays.toString(hobbies) ;

    11、使用 foreach 操作数组:

    for(元素类型 元素变量:遍历对象){

       执行代码

    }

    // 定义一个整型数组,保存成绩信息

    int[] scores = { 89, 72, 64, 58, 93 };

    // 使用foreach遍历输出数组中的元素

    for ( int score:scores ) {

    System.out.println(score);

    }

    12、二维数组:

    //定义一个两行三列的二维数组

    int num[][] = new int[2][3];

    二维数组赋值:int[][] num={{1,2,3},{4,5,6}};

    也可以在声明数组的同时为其赋值

     

    13、定义 Java 中的方法:

     

    无参无返回值方法:

    调用方法:

     

      

    无参带返回值方法的使用:

     

    14、方法的重载:方法名相同,参数不同(个数,类型,顺序不同)。

    15、类的定义:

    public class Students{
      String name; //属性(成员变量)

      String class

      Int age;

     // 方法

    void speak(){

      System.out.println(“speak chinese”);

     }

    }

    16、对象:

    //创建对象:类名 对象名=new 类名();

    Students stu=new Students();

    //使用对象:

    给属性赋值:对象名.属性名=值;stu.name=“张三”;

    调用方法:对象名.方法名(); stu.speak();

    17、成员变量和局部变量:

    成员变量:定义在类中,描述对象有什么。

    局部变量:定义在方法中,临时保存数据。

    18、成员变量和局部变量的区别:

    作用域不同:

    成员变量的作用域在整个类内部可见,局部变量仅限于定义它的方法。

    初始值不同:

    成员变量有默认初始值,局部变量没有初始值。

    优先级:两类变量同名时,局部变量有更高优先级。 

    19、构造方法:创建对象即可调用无参构造方法。

    没有返回值类型,与类同名,可有参数。

    public 构造方法名(){

        //初始化代码

    }

    使用构造方法:类名 变量名=new 构造方法名();

    当没有构造方法时,系统会自动添加无参的构造方法,当有构造方法时,不会自动添加无参的构造方法。

    20、static静态变量:

    使用 static 可以修饰变量、方法和代码块。静态成员属于这个类。

    static修饰的方法,可直接通过类名.方法名访问。

    注意:

    1、 静态方法中可以直接调用同类中的静态成员和方法,但不能直接调用非静态成员和方法。需要通过对象来访问非静态方法。

    2、在普通成员方法中,则可以直接访问同类的非静态变量和静态变量。

    21static 使用之静态初始化块:

    静态初始化块只在类加载时执行,且只会执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量。

    eg

      

    22、面向对象的三大特性:封装、继承、多态

    封装:将类的某些信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。

    封装的实现步骤:

    • 修改属性的可见性:设为private
    • 创建getter/setter方法
    • 在getter/setter方法中加入属性控制语句

    23、访问修饰符: 

     

    24、this关键字:

    this关键字代表当前对象

    this.属性 操作当前对象的属性

    this.方法 调用当前对象的方法

    25、内部类:内部类( Inner Class )就是定义在另外一个类里面的类。与之对应,包含内部类的类被称为外部类。

    内部类的主要作用如下:

    1. 内部类提供了更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其他类访问该类

    2. 内部类的方法可以直接访问外部类的所有数据,包括私有的数据

    3. 内部类所实现的功能使用外部类同样可以实现,只是有时使用内部类更方便

    内部类可分为以下几种:

    • 成员内部类
    • 静态内部类
    • 方法内部类
    • 匿名内部类

    调用内部类方法: 定义了成员内部类后,必须使用外部类对象来创建内部类对象,而不能直接去 new 一个内部类对象,即:内部类 对象名 = 外部类对象.new 内部类( );

     

    内部类方法中访问外部类的成员属性:Outer.this.name;

    26、静态内部类:

    静态内部类是 static 修饰的内部类,这种内部类的特点是:

    1、 静态内部类不能直接访问外部类的非静态成员,但可以通过 new 外部类().成员 的方式访问 

    2、 如果外部类的静态成员与内部类的成员名称相同,可通过“类名.静态成员”访问外部类的静态成员;如果外部类的静态成员与内部类的成员名称不相同,则可通过“成员名”直接调用外部类的静态成员

    3、 创建静态内部类的对象时,不需要外部类的对象,可以直接创建 内部类对象名= new 内部类();

    27、方法内部类:方法内部类就是内部类定义在外部类的方法中,方法内部类只在该方法的内部可见,即只在该方法内可以使用。

    28、继承:java中的继承是单继承。

    子类拥有父类的所有属性和方法(除了private修饰的)。

    class Dog extends  Animals{

     …….

    }

    29、方法的重写:子类可以重写父类继承的方法,当调用方法时会优先调用子类的方法。

    返回值类型、方法名、参数类型及个数都要和父类继承的方法相同。

    30、final关键字:final可以修饰类、方法、属性、变量

    final修饰类,该类不能被继承

    final修饰方法,该方法不能被覆盖(重写)

    final修饰属性,类的初始化属性必须有值或在构造方法中赋值

    final修饰变量,该变量的值只能赋一次值,即为常量。 

    31、super关键字:代表父类对象

    访问父类方法:super.eat();

    32、Object类:是所有类的父类。

    33、多态:对象的多种形态(继承是实现多态的基础)

    引用多态:

    父类引用指向本类对象 Father f1=new Father();

    父类引用指向子类对象 Father f2=new Son();

    方法多态:

    创建本类对象时,调用的方法为本类方法。

    创建子类对象时,调用的方法为子类重写的方法或继承的方法。

    34、抽象类abstract

     

    public abstract class Father{

      public abstract void eat();//抽象类没有方法体以分号结束

    }

    35、接口:

      

  • 相关阅读:
    POJ 3672 水题......
    POJ 3279 枚举?
    STL
    241. Different Ways to Add Parentheses
    282. Expression Add Operators
    169. Majority Element
    Weekly Contest 121
    927. Three Equal Parts
    910. Smallest Range II
    921. Minimum Add to Make Parentheses Valid
  • 原文地址:https://www.cnblogs.com/xlfdqf/p/12510632.html
Copyright © 2011-2022 走看看