Java学习1~6天需要背的内容

第一天
第二天

方法五要素:修饰符,返回值类型,方法名,参数列表,方法体。 - 记住

方法中返回值介绍

如果方法有返回值,方法中必须使用关键字return返回某个值,返回值类型为该值的类型,且返回值只能有一个。

return的作用:结束方法,返回结果。

注意:当调用有返回值的方法时,需要定义一个变量接受

如果方法没有返回值,返回值类型为void

问:如何调用一个类的方法?

明确:你要调用哪个类的哪个方法?

1:创建这个类的对象

2:对象名.方法名();

方法之间允许相互调用,不需要知道方法的具体实现,实现重用,提高效率

特点:

1、无参构造方法,与类同名,不含返回类型。如果类中没有显示的构造方法,系统会给出默认的无参构造方法。

2、构造方法一般都是public的,才能被系统调用。

3、无参构造在给对象属性赋值时比较麻烦,可以定义有参的构造方法。

当成员变量(属性)和方法参数同名时,一般使用this表示当前对象,如:this.name = name;

  1. 构造方法经常用于程序初始化工作,例如:人出生要“洗澡”,就可以在人的构造方法时加入完成“洗澡”的程序代码,程序就不必每个人出时一个一个地告诉他们要“洗澡”了。
  2. 当类有了带参构造方法之后,系统不再自动生成默认的无参构造方法,若使用需重新定义

要求:如果一个类中有带参数的构造方法时,必须要定义无参的构造方法

6、构造方法只能用于创建对象时,不能在程序中像调用其他方法一样调用它,但是可以用this()的形式在其他构造方法中调用它,注意this()必须在第一行。

构造方法和普通方法的区别:

构造方法访问修饰符一般是public, 一般方法根据实际情况选择修饰符

构造方法没有返回值类型,一般方法要么无返回值-void,要么有返回值

方法名与类同名,一般方法见名思意,遵循驼峰命名规则

构造方法的方法体是对象的初始化代码,一般方法是功能的实现

调用方式不一致,普通方法需要使用对象来调用,构造方法是new, this, super

方法重载的判断标准:同类同名不同参,与其他无关。(不同参:不同的参数列表:个数不同,类型不同,顺序不同)

成员变量是属于类的变量,其实就是类中的属性,类中的每一个方法都可以共享;

局部变量就是定义在某个方法中的变量,只能在定义的方法中访问,其他的方法不能共享;

成员变量和局部变量区别:

1:定义位置不同

成员变量:定义在类中的变量,属于类

局部变量:定义在方法中的变量,属于方法

2:作用域不同

成员变量:属于类,类中的每一个方法都可以使用

局部变量:属于方法,只能在某一个方法中使用

3:初始值不同

成员变量:有默认的初始值,在加载类的时候,就会给成员变量赋值(默认值)

局部变量:没有初始值,必须初始化之后才可以使用

4:生命周期不同

成员变量:属于类,随着对象的创建而创建,随对象的消失而消失- 垃圾回收器

局部变量:属于方法,随着方法的调用而创建

注意:

1:在同一个类中,成员变量和局部变量同名时,局部变量具有更高的优先级

2:在方法的参数列表中的参数,也是局部变量

第三天

1.3:实现封装的步骤   - 记住

1:私有化属性;使用private关键字来修饰属性即可。

2:创建公共的getter和setter方法;

3:在setter方法中添加控制语句,对参数进行合理化的判断

private 关键字说明:

被private修饰的属性和方法只能在本类中方法,其他类不能直接访问.

1.4:封装的好处  - 记住

1、隐藏了实现的细节,提高安全性

2、符合java的“高内聚,低耦合”思想

3、提高了软件的独立性和可重用性

  1. public: 所修饰的类、变量、方法,在任何地方均具有访问权限;
  2. protected: 这种权限是为继承而设计的,protected所修饰的成员,对所有子类是可访问的,但只对同包的类是可访问的,对外包的非子类是不可以访问;
  3. 包访问权限(default): 只对同包的类具有访问的权限,外包的所有类都不能访问;
  4. private: 私有的权限,只对本类的方法可以使用;其他地方均不能访问

静态代码块执行的时机:

静态代码块在对象创建之前执行,每创建一个对象都会执行一次构造方法。而每个静态代码块只会被执行一次。第一次创建对象之前

static变量,静态变量

按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量;

另一种是没有被static修饰的变量,叫实例变量。实例变量必须通过对象来调用。

静态变量特点: 

1、被static修饰的变量

2、在内存中只有一个,在加载类的时候创建,被所有方法和对象共享

3、其他类中,可以直接通过类名访问

static方法,静态方法

静态方法就是被static修饰的方法,没有被static修饰的方法称为实例方法,实例方法必须要对象才可以调用,

静态方法可以直接通过类名调用,任何的实例也都可以调用

静态方法特点:  

  1. 静态方法中不能使用this和super,this当前对象
  2. 不能直接访问所属类的实例变量和实例方法 ,  面试题,静态方法能不能访问非静态资源? - 可以的
  3. 可直接访问类的静态变量和静态方法,静态能够调用静态资源,不能调用非静态资源
  4. 可直接通过类名.方法名访问
  5. 规定:静态只能调用静态,非静态只能调用非静态

面试题:

静态方法能不能调用非静态方法?  

静态方法能不能直接调用非静态的方法?

 

静态变量和实例变量的比较: - 记住

 

继承中的术语和注意事项

1、类:类是具有共同属性和行为的一组对象。它是创建对象的模板或蓝图。

2、子类:子类是继承其他类的类。它也称为派生类,扩展类或子类。

3、超类/父类:超类是子类继承功能的类。它也称为基类或父类。-通用的属性和方法

4、可重用性:正如名称所指定的那样,可重用性是一种机制,可以帮助您在创建新类时重用现有类的属性和方法。

5、Java中只支持单继承,即一个类只能有一个直接父类

使用继承

  1. 编写父类,创建公共的属性和方法
  2. 编写子类使用extends继承父类
  3. 编写子类中特有的属性和方法

注意:

  1. super关键字代表父类,只能出现在子类的方法和构造方法中
  2. 在子类构造方法中使用super调用父类构造方法,必须位于第一句;
  3. 子类不可以直接访问父类中定义为private的属性和方法 - private的东西是不能被继承的。

子类到底继承了父类哪些内容!!

继承了public, protected 修饰的属性和方法

如果子类和父类在同一个包下的话,还继承了默认修饰符修饰的内容

子类不能继承父类的情况:

  1. private修饰的属性和方法
  2. 子类和父类不再同一个包下,不能继承默认访问权限的成员
  3. 不能继承构造方法

第四天

方法重写的原则  

1、方法名必须相同

2、参数列表必须相同

3、返回值类型相同或者是其子类

4、访问权限相同或不能严于父类

注意:

  1. 一般不会去改变返回值和访问权限
  2. 父类的私有方法不能被重写,重写的是可以被继承的方法
  3. 一般情况下,重写都是会存在一模一样的方法仅仅是方法体不一样。
  4. 只能重写继承来的方法

方法重写和重载的区别/关系

重载:同类同名不同参,与其他无关(同一个类中,方法名,参数列表不同--个数不同,类型不同,顺序不同)

重写:在子类和父类中存在,同名同参同返回值同访问修饰符的方法(返回值可以是其子类,访问修饰符不能比父类更严格)

简单来说就是一模一样。

抽象方法介绍

如果父类中有一个方法,每一个子类都有不同的实现,此时可以将这个方法声明为抽象方法,抽象方法是没有方法体的,只是一种规范。

Pet类中的toHospital() 方法不需要具体的实现,而且实现后没有任何意义,此时可以将Pet类中的toHospital()声明为抽象方法;

什么是抽象方法:被abstract修饰的方法,就是抽象方法。特点:没有方法体

  1. 抽象类为什么不能实例化
  2. 抽象类中是否可以存在构造方法?
  3. 抽象类和抽象方法的关系?
  4. 抽象类能不能继承普通类?
  5. 普通类能不能继承抽象类
  6. 抽象方法和普通方法的的区别!
  7. 抽象类和普通类的区别。

语法:方法体,调用

第五天
第六天

什么是异常

程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常

常见的异常有:先记5个

算术异常:ArithmeticExecption

空指针异常:NullPointerException

数组下标越界异常:ArrayIndexOutOfBoundsException

类型转换异常:ClassCastException

数组负下标异常:NegativeArrayException

字符串转换为数字异常:NumberFormatException、

输入类型不匹配:inputMisMatchException

在java应用中,异常的处理机制分为抛出异常捕获异常。

捕获异常: try , catch , finally

抛出异常:throw, throws   

Final 和 finally 有什么区别? - 面试题

Final 修饰符, 变量,方法,类,最终的,最后一个版本

修饰变量的时候 , 常量,- 不能修改

修饰方法的时候,不能被重写

修饰类的时候,不能被继承

finally是异常中的一个代码块,表示的是这段代码一定会被执行

Java的异常处理机制有哪些?

Java异常处理机制中设计到的关键字有哪些?

  1. Finally唯一不被执行的情况:当发生异常时,在程序中手动的退出系统:System.exit(1);
  2. 当try 或者 catch 块中存在return的时候,同时存在finally时,其执行顺序是怎样的?

如果try代码块或者catch代码块中有return语句时,finally代码块将在方法返回前被执行。先执行finally , 最后执行return

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.aBai

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值