Java语言

面向对象语言有如下基本特征
  • 抽象与封装

  • 继承性

  • 多态性

    Java特性和优势
    • 简单性
    • 面向对象
    • 可移植性
    • 高性能
    • 分布式
    • 动态性
    • 多线程
    • 安全性
    • 健壮性
Java开发环境

首先把源文件/.java文件编译成字节码文件,即类文件/.class文件,然后由解释器负责解释执行类文件。

程序的运行需要一定的硬件和软件环境,这个环境被称为平台

大部分平台可以看作操作系统和硬件的集合,但Java平台不同,他是运行在其他平台上的软平台。

Java平台包括Java应用程序接口/API和Java虚拟机/Java virtual machine,JVM。

Java应用程序接口/API是经过编译的,可以在程序中直接使用的Java代码标准库。

Java虚拟机负责解释和执行Java程序。

基本数据类型与表达式

标识符:>首字母:大小写字母A~Z,下划线_,$

​ 后面字母:上述字母或者数字0~9中的一个。

保留字关键字不可作标识符。

基本数据类型:

​ byte short int long float double

字节: 1 2 4 8 4 8

长度: 8 16 32 64 32 64

最小值:-128 -2^15 -2^31 -2^63 -2^-149. 2^-1074

最大值:127 -2^15-1 …… …… (2-2-23)*2127 (2-2-52)x21023

//进制 二进制0b 十进制 八进制0 十六进制0x
int i=10;//十进制
int i2=010;  //八进制
int i3 =0x10; //十六进制
sout(i);   //10
sout(i2);   //8
sout(i3;		//16

基本数据类型默认值:0

boolean类型数据默认:false

引用类型元素默认:null

声明一个引用变量仅仅是预定了变量的存储空间,此时并没有对象的生成。

Customer tom;//类名首字母大写,其余遵循驼峰命名;

​ 方法名,变量名,首字母小写,其余遵循驼峰命名

​ 包名:小写

下面代码生成新的实例/对象,在内存中给对象分配空间,并将对象的引用赋给引用变量

tom=new Customer();

数据成员

Java类道德状态用数据成员变量来表示。声明成员必须给出变量名及其所属的类型,同时还可以指定其他属性。声明格式如下:

public/protected/private [static] [final] [transient] [volatile] 变量数据类型

▷访问控制符 静态成员变量 共享变量

变量值不可改 临时变量

变量名[=变量初值];

static

没有static修饰的变量为实例变量;有static修饰的为类变量/静态变量。

实例变量用来存储所有实例都需要的属性信息。

有些属性对类中所有对象都相同,对于这样的属性变量,就可以声明为类变量。

实例变量调用: 实例名.实例变量名

类变量调用:类名|实例名.实例变量名

方法成员

一个方法可以有0~n个参数;方法声明时的参数为形式参数。参数的传递方式有:值传递及引用传递。

参数类型为基本类型时:值传递,参数类型为对象类型/数组时,采用引用传递。

方法成员也分为实例方法和类方法/静态方法;

实例方法:表示特定对象的行为,在声明时前面不加static修饰

类方法:表示具体实例的类中对象的共有行为


public class Demo {
    int id;
    static int sid;
    public void a(){
        System.out.println(id);
        System.out.println(sid);
        System.out.println("------a");
    }
    //1.static和public都是修饰符,并列的没有先后顺序,先写谁后写谁都行
    static public void b(){
        //System.out.println(this.id);//4.在静态方法中不能使用this关键字
        //a();//3.在静态方法中不能访问非静态的方法
        //System.out.println(id);//2.在静态方法中不能访问非静态的属性
        System.out.println(sid);
        System.out.println("------b");
    }
    //这是一个main方法,是程序的入口:
    public static void main(String[] args) {
        //5.非静态的方法可以用对象名.方法名去调用
        Demo d = new Demo();
        d.a();
        //6.静态的方法可以用   对象名.方法名去调用  也可以 用  类名.方法名 (推荐)
        Demo.b();
        d.b();
       
    }
}

重写/重载/构造器

  1. 构造器;

    构造器:没有任何参数的构造器我们叫做:空参构造器–》空构造器。构造器的格式:

    ​ [修饰符] 构造器的名字(){

    ​ }

    public Person(){//构造器名字必须和类名相同
      
    }
    

    ​ 构造器和方法的区别:

    ​ 1.没有方法的返回值类型

    ​ 2.方法体内部不能有return语句

    ​ 3.构造器的名字很特殊,必须跟类名一样

    ​ 构造器的作用:不是为了创建对象,因为在调用构造器之前,这个对象就已经创建好了,并且属性有默认的初始化的值。

    ​ 调用构造器的目的是给属性进行赋值操作的。

    ​ 注意:我们一般不会在空构造器中进行初始化操作,因为那样的话每个对象的属性就一样了。

    ​ 实际上,我们只要保证空构造器的存在就可以了,里面的东西不用写

    1. 重载

      总结:

      1.方法的重载:在同一个类中,方法名相同,形参列表不同的多个方法,构成了方法的重载。

      2.方法的重载只跟:方法名和形参列表有关,与修饰符,返回值类型无关。

      3.注意:形参列表不同指的是什么?

      (1)个数不同

      add() add(int num1) add(int num1,int num2)

      (2)顺序不同

      add(int num1,double num2) add(double num1,int num2)

      (3)类型不同

      add(int num1) add(double num1)

      4.请问下面的方法是否构成了方法的重载?

      (1)add(int a) 和 add(int b) —>不构成,相当于方法的重复定义

      (2)public static int add(int a) 和 public static void add(int b) —>不构成

  2. 重写

    【1】重写:

    发生在子类和父类中,当子类对父类提供的方法不满意的时候,要对父类的方法进行重写。

    【2】重写有严格的格式要求:

    子类的方法名字和父类必须一致,参数列表(个数,类型,顺序)也要和父类一致。

    1. 重载和重写的区别:

      重载:在同一个类中,当方法名相同,形参列表不同的时候 多个方法构成了重载

      重写:在不同的类中,子类对父类提供的方法不满意的时候,要对父类的方法进行重写。

英文位置修饰符返回值方法名参数抛出异常方法体
重载overload同一个类中无关无关必须相同必须不同无关不同
重写override子类父类中父类的权限要低于子类的父类的返回值大于子类必须相同必须相同小于等于不同
修饰符
同一个类同一个包子类所有类
private*
default**
protected***
public****

总结:

属性,方法:修饰符:四种:private,缺省,protected,public

类:修饰符:两种:缺省,public

以后写代码

一般属性:用private修饰 ,方法:用public修饰

异常处理机制
  • 抛出异常

  • 捕获异常

    异常处理五个关键字:try,catch,finally,throw,throws

    int a=1,b=0;
    try{
      sout(a/b);
    }catch(ArithmeticException e){
      sout("程序出现异常,变量b不能为0")
    }finally{
      sout("finally")
    }
    //finally 可以不要.
    //快捷键ctrl+alt+t
    

    引用数据类型(3种)

    • 引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时候被指定为一个特定的类型,声明之后不能改变。
    • 引用数据类型包括:类(对象)、接口、数组。
    • 所有引用类型默认值都是null.
    • 一个引用变量可以用于引用任何与之兼容的类型。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值