1.抽象类与接口
1.1抽象类
抽象类是Java中一种比较特别的类。它有着抽象方法(也可以有普通方法和属性)。在我的理解中,抽象方法类似于一个架构。具体的内容则是由重写的方法实现。定义抽象类和抽象方法的关键字是abstract。抽象类不能被实例化,但可以被继承。普通的类继承了抽象类后必须实现它的抽象方法。需要注意的是,抽象类不能是private的,因为抽象类不被继承就没有任何意义。Java里面只能进行单继承。
抽象类的定义:
abstract class wad{
abstract void a();
}
继承抽象类并实现抽象方法:
public class main extends wad{
void a(){
System.out.println("dad");
}
public static void main(String[] args) {
new main().a();
}
}
输出结果:
dad
1.2接口
接口可以说是一种更加抽象的抽象类。其关键字是interface。接口的属性都是常量,其修饰符只能是public static final,接口的方法都是抽象方法。抽象类可以有普通的属性及方法。而接口则不允许有。在Java里面,类可以实现多个接口,这一功能可以弥补Java里不能多继承的不足。实现接口的关键字是implements。
接口的定义:
interface adwad{
int a =10;
abstract void c();
}
实现接口:
class sss implements adwad{
public void c(){
System.out.println(a);
}
}
public class main {
public static void main(String[] args) {
new sss().c();
}
}
输出结果为:
10
2.异常处理
Java拥有异常处理机制,可以算是一门健壮的语言。Java里面的异常可以分为三类。一类是错误,错误不能完全算是异常,错误是脱离开发人员控制的。另一类是检查性异常,这一类异常是开发人员无法预料的,一般是由用户引起的,比如打开空文件。最后一类是运行时异常,是开发人员能够避免的。
在Java中异常处理的根接口是Throwable。这一接口有着两个子接口,分别是Error和Exception。
Error是错误,Exception是异常。同时异常也分为两种,一种是运行时异常,一种是非运行时异常。运行时异常是程序运行的时候产生的,如数组下标越界,空指针等异常,而非运行时异常是编译的时候就要处理的。比如IO异常,SQL异常。
异常处理有五个关键字:try、catch、finally、throw、throws。
其中try和catch要合并一起使用,为try catch语句。try用来监听异常是否有发生,catch用来捕捉异常。finally语句则用于try catch语句后面,无论是否有异常发生,finally语句都会被执行。throw语句则是开发人员手动抛出异常,而throws关键字则是用于方法定义的时候,用来声明该方法可能会出现异常,如果有throws关键字的方法被调用时,需要使用try catch语句进行包装。
public class main{
public static void main(String[] args){
car a =new car(15);
System.out.println(a.remain);
gas_station b =new gas_station();
try {
b.jiayou(a);
throw new Exception();
}catch (Exception e){
System.out.println("出现异常啦"+e);
}finally {
System.out.println("哈哈哈");
}
System.out.println(a.remain);
}
}
public class gas_station {
public void jiayou(car a)throws Exception{
a.remain +=2;
}
}
public class car {
int remain =0;
car(int remain){
this.remain =remain;
}
}
运行结果:
15
出现异常啦java.lang.Exception
哈哈哈
17
注:Java支持自定义异常,在定义异常的时候如果是检查性异常需要继承Exception类,如果是运行时异常需要继承RuntimeException类。
类于方法练习题:
练习1:设计加油站类和汽车类,加油站提供一个给车加油的方法,参数为剩余汽油数量。每次执行加油方法,汽车的剩余汽油数量都会加 2。
练习2:智能手机的默认语言为英文。,但制造手机时可以将默认语言设置为中文。编写手机类, 无,参构造方法使用默认语言设计,利用有参构造方法修改手机的默认语言。
练习3:张三去KFC买可乐,商家默认不加冰块。但是张三可以要求加 3 个冰块。请利用有参构造方法实现上述功能。
练习4:创建教师类,类中有姓名、性别和年龄三个属性,在构造方法中使用 this 关键字分别为这三个成员属性赋值。
练习5:一只大熊猫,长 1.3 米,重 90千克。在自定义方法中使用this关键字调用类的成员变量并在控制台输出这只大熊猫的信息。
练习6:创建信用卡类,有两个成员变量分别是卡号和密码,如果用户开户时没有设置初始密码,则使用"123456"作为默认密码。设计两个不同的构造方法,分别用于用户设置密码和用户未设置密码两种构造场景。
1.
public class car {
int remain =0;
car(int remain){
this.remain =remain;
}
}
public class gas_station {
public void jiayou(car a){
a.remain +=2;
}
}
public class main{
public static void main(String[] args){
car a =new car(15);
System.out.println("剩余油量:"+a.remain);
gas_station b =new gas_station();
b.jiayou(a);
System.out.println("剩余油量:"+a.remain);
}
}
输出结果:
剩余油量:15
剩余油量:17
2.
class Language{
String language =null;
Language(String language){
this.language =language;
System.out.println(language);
}
Language(){
this("English");
}
public static void main(String[] args) {
Language a =new Language();
a =new Language("中文");
}
}
输出结果:
English
中文
3.
class KFC{
int bingkuai =0;
KFC(int bingkuai){
this.bingkuai =bingkuai;
System.out.println("冰块数量为"+bingkuai);
}
KFC(){
this(0);
}
public static void main(String[] args) {
KFC c =new KFC();
c =new KFC(2);
}
}
输出结果:
冰块数量为0
冰块数量为2
4.
class teacher{
String name =null;
String sex =null;
int age;
teacher(String name,String sex,int age){
this.name =name;
this.sex =sex;
this.age =age;
}
public static void main(String[] args) {
teacher a =new teacher("张三","女",21);
System.out.println("姓名:"+a.name+" "+"性别:"+a.sex+" "+"年龄:"+a.age);
}
}
输出结果:
姓名:张三 性别:女 年龄:21
5.
class panda{
float Long =1.3f;
int height =90;
public void a(){
System.out.println("大熊猫长"+this.Long+"米"+" "+"重:"+this.height+"千克");
}
public static void main(String[] args) {
panda a =new panda();
a.a();
}
}
输出结果:
大熊猫长1.3米 重:90千克
6.
public class credit {
long user =0;
long password =0;
credit(long password){
this.password =password;
System.out.println(password);
}
credit(){
this(123456);
}
public static void main(String[] args) {
credit a =new credit(235689);
a =new credit();
}
}
输出结果:
235689
123456
本文详细讲解了Java中的抽象类和接口的区别与使用,包括抽象类的定义、实现以及接口的关键字和实现方式。此外,还介绍了Java异常处理机制,包括异常的分类和处理关键字。最后,提供了几个面向对象编程的练习题,涉及类的设计和方法的运用。
3312

被折叠的 条评论
为什么被折叠?



