java

作者: wxy_7fa5 | 来源:发表于2022-01-23 23:12 被阅读0次

    1.安装配置

    1.JDK的下载和安装
      下载:http://www.oracle.com
      安装:D:\Develop\jdk12
    JDK的安装目录
     bin:该路径下存放了JDK的各种工具命令。Javac和java就放在这个目录
     conf:该路径下存放了JDK的相关配置文件
     include:该路径下存放了—些平台特定的头文件
     jmods:该路径下存放了JDK的各种模块
     legal:该路径下存放了JDK各模块的授权文档
     lib:该路径下存放了JDK工具的一些补充JAR包
    2.环境变量配置
     右键我的电脑,属性,高级系统设置,环境变量,新建系统变量:
       JAVA_HOME  D:\Develop\jdk12
     编辑系统变量中的path:%JAVA_HOME%\bin;
    3.常用DOS命令
     win+R,cmd,cls,d:,dir,cd develop,cd develop\jdk12\bin,cd/,exit
     可直接用图形界面打开bin,然后搜索框输入cmd
     或在Notepad++中,右键标题,打开所在文件夹(命令行)
     设置,首选项,新建,默认语言选java,编码选ANSI 
    4.IDEA下载安装
    (1)安装:只勾选第一个:创建桌面快捷图标64
       设置层级展开项目:齿轮,取消第二个
       设置字体:file,settings,搜索font,size改成16
    (2)IDEA项目结构介绍
      project (项目、工程)
      module(模块)
      package (包)
      class(类)
    (3)创建项目:
     Empty Project-Modules-SDK选择jdk的安装目录
     在src下new个package,倒着写域名:com.xingyi.demo1
     new个javaClass
      运行:main方法左侧Run,或空白处右键
    (4)快捷键:
      psvm+回车:快速生成main方法
      sout+回车:快速生或输出语句
      alt + 1 :打开\隐藏工程目录结构
      alt +4:打开\隐藏控制台
      Ctrl + alt + L  格式化代码
      Alt + enter  代码修正提示
      Ctrl +D 向下复制一行
      Ctrl + X 剪切当前行
      Ctrl + / 批量加入单行注释,再按一次就是取消
      Ctrl + shift +/ 批量加入多行注释,再按一次就是取消
      ALt + shift + ↑ 上移当前行
      Alt + shift + ↓ 下移当前行 
    

    2.java背景

    1.java语言的三个版本
      Java SE:Java语言的(标准版),用于桌面应用开发,是其他两个版本的基础。
      Java ME:Java语言的(小型版),用于嵌入式消费类电子设备(被安卓和ios取代了)
      Java EE:Java语言的(企业版),用于Web方向的网站开发。
    2.Java跨平台原理 
      Java程序并非是直接运行的,而是由编译器将源程序编译成与平台无关的字节码文件(class文件),然后由Java虚拟机(JVM)对字节码文件解释执行。所以在不同的操作系统下只需安装不同的Java虚拟机即可实现java程序的跨平台。
    3.JRE和JDK
    Java程序开发的三个步骤:编写代码,编译代码,运行代码
    编写代码:.java文件属于【源文件】,是无法被JVM所识别执行的
    编译代码:产生可被虚拟机识别的.class文件(字节码文件)
    运行代码:使用运行工具将class运行在JVM虚拟机中(多个class文件具体运行哪个)
      编写代码的过程中,需要使用JRE中 Java已经写好的代码。
      编译代码的过程中,需要使用JDK中的翻译工具。
      运行代码的过程中,需要使用JDK中的运行工具。
      代码最终运行在JVM当中。
     JVM(Java Virtual Machine),Java虚拟机
     JRE(Java Runtime Environment),Java运行环境,包含了JVM和Java的核心类库(Java API)
     JDK(Java Development Kit)称为Java开发工具包,包含了JRE和开发工具  
    

    3.规则

    3.1 标识符和关键字

    1.注释
    单行注释:格式://注释信息
    多行注释:格式︰/*注释信息*/
    文档注释:格式:/**注释信息*/,文档注释目前用不上,暂不讲解。
    2.关键字
    关键字∶被Java赋予了特定涵义的英文单词
    特点:字母全部小写。
         在编辑器针有特殊的颜色标记
         48个关键字:
    abstract、assert、boolean、break、byte、case、catch、char.class、continue、default、do、double、else、enum、extends、final、finally、float、for、if、implements、import、int、
    interface、instanceof、long、native、new、package、private、protected、public、return、short、static、strictfp、super.switch、synchronized、this、throw、throws、transient、try、void、volatile、while.
    3.标识符:
      用来标识类名接口名、变量名方法名、文件名、类型名、数组名的有效字符序列。简单地说,标识符就是一个名字。
    规则:
     ①可以由字母,数字,下划线(_),美元符($)组成,
      但不能以数字开头,不能包含空格,%,@等其他特殊字符。
     ②要区分大小写且不能是java关键字 
    包名:全部小写
    类、接口名:所有单词首字母均大写 
    变量名,方法名:
      ①单个单词:全部小写
      ②多个单词,第一个单词首字母小写,其后的单词首字母大写
    4.运算符
     算术运算符: +-*/ %++ --
     关系运算符:>>=<=<!=
     逻辑运算符:&& ll !
     位运算符:& │ ^~
     赋值运算符:=
    5.编程语言的几个发展阶段
      ◆面向机器语言
      ◆面向过程语言
      ◆面向对象语言
      面向对象编程主要体现下列三个特性:
         ◇封装性
         ◇继承
         ◇多态
    

    3.2 数据类型划分

    1.八个基本数据类型和四个引用数据类型
    基本数据类型:整数类型,浮点类型,字符类型,布尔类型
    引用数据类型:类,接口,数组,枚举类型
    2.整数类型有三种表示形式
    十进制整数,八进制整数(0开头),十六进制整数(以0x开头)
    若要表示长整型在数字后面加L。(88L)
    3.浮点类型有两种表示形式
    十进制数形式(0.123)和科学计数法形式(123e3)
    float型小数后面加F,double型小数后面加D,带小数点的数默认是Double型。
    4.布尔类型
    只有两个值true和false,在内存中占4个字节
    5.类型转换
    (1)自动类型转换
    基本类型优先关系从低到高:byte->short->char->int->long>float->double
    int i; double j=i;(机器自动转化)
    (2)强制类型转换
    int i=12;byte b=(byte)i; //int类型强制转换成byte
    (3)其他类型转换
    字符串转数字:Integer.parseInt(String s)//转为整型数字
    数字转字符串:String.valueOf(各种类型的数值变量).
        Byte.toString(byte b)
        空串连接数字:“”+25
    
    
    数据类型.png

    3.3 数组

    1.一维数组
    (1)声明数组 int intArray[];
    (2)引用数组
      intArray[索引]
      intArray.length
    (3)初始化数组
      直接赋值创建:String stringArray[]= {"abc", "How"};
      用new创建:String s[]=new String[2];
                s[0]=new String("Good");
    2.多维数组
    (1)声明数组 int intArray[][];
    (2)引用数组
      intArray[索引][索引]
    (3)初始化数组
      直接赋值创建:int a[][]={{1,2},{2,3},{3,4,5}};
        java中把二维数组看作数组的数组,数组空间不是连续分配的,所以不要求二维数组每一维的大小相同。
      用new创建:int a[][]=new int[2][3];//直接为每一维分配空间
               String s[][]=new String[2][];开辟两行存储空间
               s[0]= new String[2];/为第一维第一个单元分配空间
               s[0][0]=new String("Good");
               s[0][1]=new String("Luck");
    

    3.4 枚举类型

    语法格式如下:
    enum 枚举名
    {常量列表
    }
    案例:
    enum season {
      春季,夏季,秋季,冬季
    }
    public class Example2-8{
    public static void main (string args [ ]){
      season x=season.春季;
      system.out.println(x);
    }
    

    3.5 程序控制语句

    1.switch语句(判断季节)
    switch (y){
      case 3:
      case 4:
      case 5:
         System.out.println("春天(spring) ");
         break;
      case 6:
      case 7:
      case 8:
         System.out.println("夏天(summer) " );
         break;
      case 9:
      case 10:
      case 11:
         System.out.println("秋天(autumn)");
         break;
      case 12:
      case 1:
      case 2:
         System.out.println("冬天( winter) ");
         break;
      default: 
         System.out.println("季节输入有误");
    }
    2.包语句
    通过package关键字声明包语句,是Java源文件的第一条语句,为该源文件中声明的类指定包名。
      package语句的一般格式为: package 包名;
    3.import语句
    通过import关键字来引用不在同一个包中的类。
      例如: import tom.jiafei.*;
      
    

    3.6类

    1.类
      class 类名              //类声明
      {                             //类体
        类体的内容
      } 
    类的实现包括两部分:类声明和类体。
      ◆类体的内容包括两部分:一部分是变量的定义,用来刻画属性;另一部分是方法的定义,用来刻画功能。
    2.变量分类
      成员变量:在类中声明的变量,分为
        静态变量:被static关键字修饰的变量。
        实例变量:没有static关键字修饰的变量。
      局部变量:在方法中声明的变量,只在方法内有效 
    3.成员变量的隐藏:
      局部变量与成员变量的名字相同,则成员变量被隐藏,这个成员变量在这个方法内暂时失效
    4.方法分类
      静态方法:被static关键字修饰的方法。
      实例方法:没有static关键字修饰的方法。
    5.方法重载:同一个类中,方法名相同,方法参数不同即参数的个数或类型不同。(返回值类型要一致)
    6.构造方法:方法名和所在的类的名字完全相同,并且没有返回值类型。(构造方法也可以重载)
    

    3.7对象

    1.声明对象point1和point2:                                  Point point1,point2;
    2.为对象分配内存,使用new运算符和类中的构造方法:              point1=new Point(10,10);
    3.调用对象的变量和方法:使用运算符"."                   
    

    3.8 访问权限

    权限.png
    使用关键字public,protect,friend,private来修饰成员变量或方法。
    eg:
    class Tom{
      private float weight;
      private float f(float a,float b){
        return a+b;
      }
    class Jerry{
      void g(){
        Tom cat=new Tom ( );
        cat.weight=23f;              //非法, private类型的变量的访问权限在同一个类中
        float sum=cat.f(2.3);      //非法, private类型的方法的访问权限在同一个类中
      } 
    private修饰的变量或方法,只有在同一个类中才可以调用
    friend修饰的变量或方法,在同一个类或同一个包中才可以调用
    protected修饰的变量或方法,在同一个类,同一个包或不同包的子类时都可以调用
    public修饰的变量或方法,在同一个类,同一个包或不同包的子类,不同包的非子类时都可以调用
    

    3.9 继承

    1.继承与父类子类

    1.继承
    若父类和子类在同一个包中,子类可以继承父类中不是private的成员变量作为子类的成员变量。
    若父类和子类不在同一个包中,子类可以继承父类中public,protect成员变量作为子类的成员变量。
    2.子类对象的构造过程
      子类创建对象时,父类和子类中声明的成员变量都被分配了内存,但只将子类继承的那部分分配给子类。
    3.成员变量的隐藏
      子类声明的成员变量和父类中的成员变量同名时,子类就隐藏了继承的成员变量。
    4.方法重写
    子类中的定义的方法,方法的类型,名字,参数个数与类型和父类完全相同,则子类对父类的方法实现重写。
    5.super关键字
      在子类中调用被子类隐藏的成员变量或方法要使用super关键字。
    6.final关键字
    被final修饰的类不能被继承。
    被final修饰的方法不能被子类重写。
    被final修饰的变量就是常量。
    7.对象的上转型对象
     ①A类是B类的父类,用子类创建的对象赋值给父类的对象,此时父类对象是子类对象的向上转型。
     B b=new B();
     A a=b;  //对象a是对象b的向上转型
     ②对象:不仅可以引用继承或隐藏的变量,继承或重写的方法,还可以引用新增的变量和新增的方法。
     对象的向上转型对象:只能引用继承(没重写)或隐藏(重写后)的变量,继承和重写的方法。
     ③上转型对象强制转化成子类对象
     B bb=(B)a;
    
    image.png

    2.继承与多态

    多态:是指父类的某个方法被子类重写时,可以各自产生不同的功能.
    
    image.png

    3.抽象类和接口

    一.抽象类
    1. abstract类中可以有abstract方法也可以有非abstract方法,abstract类不能用new运算创建对象,将abstract类声明对象作为其子类的上转型对象,那么这个上转型对象就可以调用子类重写的方法。
    注意:抽象类不能声明对象
    2.子类必须重写父类的抽象方法 
    二.接口
    
    

    1.抽象类


    image.png
    image.png
    image.png
    image.png

    2.接口

    1.
    一个子类只能继承一个父类,同一个类可以实现多个接口
    接口的实现包括两部分:接口声明和接口体,接口体中包含常量定义和方法定义两部分。
    2.接口回调
    实现某一接口的类创建的对象的引用赋给该接口声明的变量,此时接口变量可以调用被类重写的接口方法。
    (A类是B类的父类,用子类创建的对象赋值给父类的对象,此时父类对象是子类对象的向上转型。)
    3.接口和抽象类的比较:
    接口中只有常量,而抽象类中可以有变量。接口中只有抽象方法,而抽象类中可以有普通方法。
    

    1.实例


    image.png
    image.png

    2.接口回调


    image.png
    image.png
    3.实例
    image.png
    image.png

    4.实操

    4.1 从命令行输入输出数据

    (1)用Scanner类创建一个对象
    Scanner reader—new Scanner(System.in);
    (2)输入:调用next方法
    nextBoolean()、nextByte()、nextShort()、nextInt()、nextLong()、nextFloat()、nextDouble)。
    double x=reader.nextDouble(;
    (3)输出
    System.out.println(x)
    
    image.png
    image.png

    相关文章

      网友评论

          本文标题:java

          本文链接:https://www.haomeiwen.com/subject/rmmyhrtx.html