Java学习笔记1(零碎笔记)——基础

命名

变量、方法:驼峰命名
类:首字母大写+驼峰命名

流程控制

增强型for循环:

for(数据类型 名称 : 数组){
	(操作)
}

(意思是遍历数组,从数组的0号元素开始一个个赋值给冒号左边的)

方法

static,静态方法,跟着类一起加载,所以静态方法不能调用非静态方法,因为非静态方法是跟着对象的创建一起加载的。两者出现的时间顺序不一样。同时,可以直接用类名来调用静态方法。

命令行传参:给main方法传递参数
可变长参数:… 必须放在所有参数最后
递归:自己调用自己

构造方法:

  • 和类名相同

  • 没有返回值

  • 作用:

    1.new的本质在调用构造方法
    2.初始化对象的值

  • 注意:

    定义有参构造后,如果想使用无参构造,必须显式地定义一个无参构造
    IDEA创建构造函数的快捷键:Alt+Ins

  • 其他:
    this. = 意思:等号右边的是传进去的形参,this的那个是当前类自己的参数

OOP

  • 面向对象编程的本质是:以类的方式组织代码,以对象的形式封装数据

java中只有单继承 没有多继承

super:

  • super用来调用父类的东西 但是不能调用父类私有的东西
  • 子类被new了之后先调用了父类的构造函数,因为子类的构造函数里面第一行有一句隐藏代码super();
  • super只能出现在子类的方法或者构造方法中,否则会调用Object类
  • super和this不能同时调用构造方法

重写:
需要有继承关系,子类重写父类的方法

  1. 重写方法名必须相同
  2. 参数列表必须相同(否则变成重载)
  3. 修饰符:范围可以扩大但不能缩小。比如父类是private,子类可以是public。
  4. 抛出的异常:范围可以缩小但不能扩大。
  5. 为什么要重写:父类的功能子类不一定需要或者不一定适合
  6. 重写的快捷键:Alt+Ins:override

静态方法和非静态方法的区别:

静态方法:方法的调用只和左边定义的数据类型有关 如:

A a = new A();
a.test();//调用A类的方法
B b = new A();
b.test();//调用B类的方法

因为static修饰的方法归类所有,叫类的成员,不是对象的成员

非静态方法:只有非静态方法才能被重写

  • 简单来说:静态属于类,非静态属于对象。重写只有方法的重写,没有属性的重写。

多态:

  • 即同一方法可以根据发送对象的不同而采用多种不同的行为方式。(一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多(父类或有关系的类))

1.多态只有方法的多态,属性没有多态
2.父类和子类,有联系,才能多态
3.存在条件:继承关系,方法需要重写,父类引用指向子类对象。
Father f1 = new Son();

  • 这些方法不能被重写:(没有重写自然就没有多态)
    1.static
    2.final
    3.private

运行顺序:

  1. 静态代码块(只执行一次,类加载时执行)
  2. 匿名代码块(跟随对象,对象一创建就会先执行匿名代码块,再执行构造方法)
  3. 构造方法

抽象:

  1. 不能去new抽象类,只能靠子类去实现它
  2. 抽象类中可以写普通方法
  3. 抽象方法必须在抽象类中
  4. 继承了抽象类的子类,都必须要把所有抽象方法实现,除非那个子类也是抽象类
  5. 抽象类不能被实例化

接口:

  1. 接口中所有的定义其实都是抽象的,都是public abstract修饰的
  2. 类可以实现借口 implement接口1,接口2,…
  3. 实现了接口的类,就需要重写接口中的方法
  4. 利用接口实现多继承
  5. 在接口中定义的常量是public static final修饰的
  6. 接口不能被实例化,因为他没有构造方法

java中可以有多个class类,但是只能有一个public class
通过外部类实例化内部类:

Outter outter = new Outter();
Outter.Inner inner = outter.new Inner();

异常

try是监控区域,
catch用于捕获异常并做一些处理处理(从小到大捕获异常),
finally用于处理善后工作(finally无论出现什么都会执行,执行完了再报不能处理的错)
(调出try-catch快捷键:Ctrl + Alt + T)

异常处理的一些经验:

  1. 处理运行异常时,采用逻辑去合理规避,同时辅助try-catch处理
  2. 在多重catch块后面,可以加一个catch(Exception)来处理可能会被遗漏的异常
  3. 对于不确定的代码,也可以加上try-catch,处理潜在的异常
  4. 尽量去处理异常,切忌只是简单地调用printStackTrace()去打印输出
  5. 具体如何处理异常,要根据不同的业务需求和异常类型去决定
  6. 尽量添加finally语句去释放占用的资源(IO之类)

其它

a=10;b=20""+a+b //输出:1020
a+b+"" //输出:30
  • 即:若先出现string类型,加号则变成字符串连接符;若先出现运算,则先运算再连接
  • 区间默认为 [ , )
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值