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、接口:

  

原文地址:https://www.cnblogs.com/xlfdqf/p/12510632.html