Java面向对象编程学习笔记

目录

1、Java的三大特征

2、抽象类和接口

3、关键字final

4、运用

5、总结

1、Java的三大特征

1.1封装

简言之,就是把一些东西隐藏和暴露出来。

1.1.1封装的实现

(1)将不能暴露的成员隐藏起来。实现方法是将该成员定义为私有的,在成员定义前加上修饰符private。

(2)用公共方法来暴露对该隐藏成员的访问,可在函数上加修饰符public,将该方法定义为公共的。

代码示例:

public class Test {
        private String name;
        private int age;
        public void setName(String name){
            if(name.length()>6 || name.length()<2){
                System.out.println("请输入符合要求的名字!!")
                return;
            }
            else{
                this.name = name;
            }
        }
    public String getName(){
        return name;

    }
}

1.2继承

在Java中,被继承的类称为父类、基类或超类,与之对应的类称为子类或派生类。继承是通过关键字 extends 实现的。

1.2.1格式

class 子类 extends 父类 {}
//如果一个成员要被子类继承后使用,这个成员不能是private类型
//一般情况下,成员变量定义为protected类型,成员函数定义为public类型

1.2.2重写与覆盖

        1、在子类里可以根据自己的需要对从父类中继承来的方法进行重写。重写的方法和被重写的方法必须都具有相同方法名称、参数列表和返回类型。

        2、子类方法的覆盖是使子类“隐藏”了父类中的方法。如果需要访问被子类覆盖的方法,则可以使用super关键字指明调用父类被覆盖的实例方法。

1.3多态

父类的引用可以指向子类对象。

2、抽象类和接口

2.1抽象类:含有抽象函数的类称为抽象类,抽象类必须用abstract修饰。

1、抽象类不能被实例化;
2、抽象函数必须被重写,除非子类也是抽象类;
3、在抽象类中可以含有普通成员函数。

2.2接口:单继承,多接口

//用法
interface XXXXXX

class 子类 extends 父类 implements 接口1,接口2...

3、关键字final

//用final修饰一个类,该类不能被继承,eg:
final class TestDome{}

//用final修饰一个函数,该类在被子类继承的情况下,show函数不能被重写,eg:
class TestDome{
    public final void show();
}

//用final修饰一个成员变量时,该变量不能重新赋值,eg:
class Math{
    public final double PI = 3.14
}

4、运用

按要求编写一个Java应用程序程序:
(1)定义一个接口CanFly,描述会飞的方法public void fly();
(2)分别定义类飞机和鸟,实现CanFly接口。
(3)定义一个测试类,再定义一个makeFly( XXX )方法,其中让会飞的事物飞。
       测试飞机和鸟,在main方法中创建飞机对象和鸟对象,
       调用makeFly方法,让飞机和鸟起飞。
//接口定义
public interface CanFly {
     void fly();
}

//定义类飞机和鸟
public class Plane implements CanFly {
    public void fly() {
        System.out.println("芜湖~~飞机起飞!");
    }
}

public class Bird implements CanFly {
    public void fly() {
        System.out.println("鸟儿在飞!");
    }
}

//测试类
public class Test {
        public static void main(String[] args) {
            Plane p = new Plane();
            new Test().makeFly(p);
            Bird b = new Bird();
            new Test().makeFly(b);
        }
       public void makeFly(CanFly p) {
            p.fly();

        }
    }

5、总结

        接口中的成员函数默认都是public访问类型,成员变量默认是用public static final标识的,所以接口中定义的变量是全局静态常量。

        final成员变量必须在声明时或在构造函数中显式赋值才能使用。一般情况下,在定义时就进行赋值。

        

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值