java自学笔记_JAVA自学笔记(4)

发现JAVA的有趣

Day1 继承不是"继承"

1.0 继承的格式

ab829d8cb50aa54adcca007f018bd1dd.png

public classFU {public voidmethod()

{

System.out.println("Good night!");

}

}

public class ZI extendsFU {

}

public classPractice {public static voidmain(String[] args) {

ZI zi=newZI();

zi.method();

}

}

打印结果:

Good night!

2.0 继承中成员变量的访问特点

9e1622c58fb31922e8a6bb6c04693d36.png

public classFU {int num=10;int numfu=100;public voidmethodfu()

{

System.out.println(num);

}

}

public class ZI extendsFU {int num=20;int numzi=200;public voidmethodzi()

{

System.out.println(num);

}

}

public classPractice {public static voidmain(String[] args) {

ZI zi=newZI();

FU fu=newFU();

System.out.println(zi.numfu);//100

System.out.println(zi.numzi);//200//第一种

System.out.println(zi.num);//20;

System.out.println(fu.num);//10//第二种

zi.methodzi();//20

fu.methodfu();//10

zi.methodfu();//10

}

}

3.0  区分子类方法中重名的三种

391d6668c1f3aa67e932c3a850935bd3.png

public class ZI extendsFU {int num=20;public voidmethodzi()

{int num=100;

System.out.println(num);//100

System.out.println(this.num);//20

System.out.println(super.num);//10

}

}

4.0 方法的覆盖重写

24d27bfdf534f4d522d06124fcb45352.png

cce18f22e5f0bb11434dff1c3a894724.png

继承中方法的覆盖重写 (典型事例)

收旧手机!报废手机!手机换盆!换剪子!换菜刀!

public classOldphone {public voidcall()

{

System.out.println("didi~主人的电话来啦");

}public voidsend()

{

System.out.println("叮咚! 有一条新信息");

}public voidshow()

{

System.out.println("显示来电");

System.out.println("来电铃声");

}

}

public class Newphone extendsOldphone {

@Overridepublic voidshow(){super.show();

System.out.println("显示姓名");

System.out.println("显示头像");

}

}

public classPhone {public static voidmain(String[] args) {

Oldphone oldphone=newOldphone();

Newphone newphone=newNewphone();

System.out.println("老手机的功能:");

oldphone.call();

oldphone.send();

oldphone.show();

System.out.println("=============");

System.out.println("新手机的功能:");

newphone.call();

newphone.send();

newphone.show();

}

}

打印结果:

老手机的功能:

didi~主人的电话来啦

叮咚! 有一条新信息

显示来电

来电铃声

=============

新手机的功能:

didi~主人的电话来啦

叮咚! 有一条新信息

显示来电

来电铃声

显示姓名

显示头像

5.0 继承中构造方法的访问特点

a3d4e0fdec8a813d7677845290de7f1d.png

6.0 Java 继承的特点

5ab77be8c78065f4c6a4faef5a023562.png

6.0 继承的案例 (群主发红包啦 快去抢!)

首先 对案例的分析

1cf060fcc155b18bfc013332bfa1a2a9.png

抢红包的实现

public classUser {private intmoney;privateString name;publicUser(){};public User(intmoney, String name) {this.money =money;this.name =name;

}public voidshow()

{

System.out.println("我叫"+getName()+" 我还有:"+getMoney());

}public intgetMoney() {returnmoney;

}public void setMoney(intmoney) {this.money =money;

}publicString getName() {returnname;

}public voidsetName(String name) {this.name =name;

}

}

importjava.util.ArrayList;public class Owner extendsUser{publicOwner() {super();

}public Owner(intmoney, String name) {super(money, name);

}public ArrayList send(int sendmoney,int count)//发多少 发几份

{

ArrayList list=new ArrayList<>();int totalmoney=super.getMoney();//当前余额

if(totalmoney

{

System.out.println("余额不足!");returnlist;

}super.setMoney(totalmoney-sendmoney);int ave=sendmoney/count;int mod=sendmoney%count;//余数放在最后一个红包

for(int i=0;i

{

list.add(ave);

}

list.add(ave+mod);returnlist;

}

}

importjava.util.ArrayList;importjava.util.Random;public class Member extendsUser {publicMember() {super();

}public Member(intmoney, String name) {super(money, name);

}public void receive(ArrayList list)

{int index=new Random().nextInt(list.size());//0~list.size()-1

int datamoney=list.remove(index);int leftmoney=super.getMoney();//原有的金额

super.setMoney(datamoney+leftmoney);

}

}

importjava.util.ArrayList;public classHongbao {public static voidmain(String[] args) {

Owner owner=new Owner(100,"方时赫");

Member one=new Member(0,"金硕珍");

Member two=new Member(0,"金南俊");

Member three=new Member(0,"闵玧其");

owner.show();

one.show();

two.show();

three.show();

System.out.println("===============");

ArrayList list=owner.send(20, 3);

one.receive(list);

two.receive(list);

three.receive(list);

owner.show();

one.show();

two.show();

three.show();

}

}

打印结果:

我叫方时赫 我还有:100

我叫金硕珍 我还有:0

我叫金南俊 我还有:0

我叫闵玧其 我还有:0

===============

我叫方时赫 我还有:80

我叫金硕珍 我还有:6

我叫金南俊 我还有:8

我叫闵玧其 我还有:6

Day3 抽象???

1.0 抽象类的方法

b2f5cea891f092a2526f73baba3b9a84.png

举个列子778吧

public abstract classAnimals {public abstract voideat();

}

public class Dog extendsAnimals{public voideat(){

System.out.println("狗吃骨头");

}

}

public class Cat extendsAnimals{public voideat(){

System.out.println("猫吃鱼");

}

}

public classPractice {public static voidmain(String[] args) {

Cat cat=newCat();

Dog dog=newDog();

cat.eat();

dog.eat();

}

}

打印结果:

猫吃鱼

狗吃骨头

2.0 抽象类的使用的注意事项

e62bfc5901476605d56a162f53361ca2.png

Day 4 欢迎来到接口的世界!

1.0 接口的定义

dbf2f20cd88a5b72e7217e8e71ff7b2e.png

2.0 接口的抽象方法的定义

eb9ad2387f8eb2b1378b049b4c67358d.png

3.0 接口的抽象方法的使用

bb108d382f25c7790e8d93cf332d7518.png

public interfaceMyinter {public abstract voidmethod1();public abstract voidmethod2();public abstract voidmethod3();

}

public class Interfaced implements Myinter {//实现类

@Overridepublic voidmethod1() {

System.out.println("这是第一个方法!");

}

@Overridepublic voidmethod2() {

System.out.println("这是第二个方法!");

}

@Overridepublic voidmethod3() {

System.out.println("这是第三个方法!");

}

}

public classPractice {public static voidmain(String[] args) {

Interfaced inte=newInterfaced();

inte.method1();

inte.method2();

inte.method3();

}

}

打印结果:

这是第一个方法!

这是第二个方法!

这是第三个方法!

4.0 接口的默认方法的定义

9d29081a130d92ea2d6c5705cd7acb42.png

5.0 接口的默认方法的使用

41d133146dec4d5f5aae6073230db5fa.png

public interfaceMyinter {public abstract voidmethod1();public abstract voidmethod2();public abstract voidmethod3();public default voidmethod4()

{

System.out.println("新增加的方法!");

}

}

public class Interfaced implements Myinter {//实现类

@Overridepublic voidmethod1() {

System.out.println("这是第一个方法!");

}

@Overridepublic voidmethod2() {

System.out.println("这是第二个方法!");

}

@Overridepublic voidmethod3() {

System.out.println("这是第三个方法!");

}

@Overridepublic voidmethod4() {

System.out.println("这是覆盖重写的 方法!");

}

}

public classPractice {public static voidmain(String[] args) {

Interfaced inte=newInterfaced();

inte.method1();

inte.method2();

inte.method3();

inte.method4();

}

}

打印结果:

这是第一个方法!

这是第二个方法!

这是第三个方法!

这是覆盖重写的 方法!

6.0 接口的静态方法的定义

527ee6d9d3539d04300fb3c27fa9c799.png

7.0 接口的静态方法的使用

3aaef38d43b5ae59eef16759851181b4.png

public interfaceMyinter {public static voidmethodstatic()

{

System.out.println("这是一个静态方法");

}

}

public class Myinterface implementsMyinter {

}

public classMain {public static voidmain(String[] args) {//错误写法 Myinterface.methodstatic();

Myinter.methodstatic();

}

}

打印结果:

这是一个静态方法

8.0 接口的私有方法的定义

48569941e139d3afb5d246af04cb4f84.png

public interfaceMyinter {public default voidmethod1()

{

System.out.println("这是一个默认方法1");

method3();

}public default voidmethod2()

{

System.out.println("这是一个默认方法2");

method3();

}private voidmethod3()

{

System.out.println("AAA");

System.out.println("BBB");

System.out.println("CCC");

}

}

public interfaceMyinter {public static voidmethod1()

{

System.out.println("这是一个默认方法1");

method3();

}public static voidmethod2()

{

System.out.println("这是一个默认方法2");

method3();

}private static voidmethod3()

{

System.out.println("AAA");

System.out.println("BBB");

System.out.println("CCC");

}

}

9.0 接口中常量定义和使用

c22b10afc399ac8f1ca4659061a3a446.png

10.0 接口的小结

7ad3a9e02883320235c8e866d9169b15.png

11.0 继承父类并实现多个接口

23e84f365dc4a7aecec380a6a655cc58.png

12.0 接口的多继承

3d14f9a71194005bb2bce16387e13095.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值