java自学笔记_JAVA自学笔记(4)
發現JAVA的有趣
Day1 繼承不是"繼承"
1.0 繼承的格式
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 繼承中成員變量的訪問特點
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??區分子類方法中重名的三種
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 方法的覆蓋重寫
繼承中方法的覆蓋重寫 (典型事例)
收舊手機!報廢手機!手機換盆!換剪子!換菜刀!
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 繼承中構造方法的訪問特點
6.0 Java 繼承的特點
6.0 繼承的案例 (群主發紅包啦 快去搶!)
首先 對案例的分析
搶紅包的實現
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 抽象類的方法
舉個列子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 抽象類的使用的注意事項
Day 4 歡迎來到接口的世界!
1.0 接口的定義
2.0 接口的抽象方法的定義
3.0 接口的抽象方法的使用
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 接口的默認方法的定義
5.0 接口的默認方法的使用
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 接口的靜態方法的定義
7.0 接口的靜態方法的使用
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 接口的私有方法的定義
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 接口中常量定義和使用
10.0 接口的小結
11.0?繼承父類并實現多個接口
12.0 接口的多繼承
總結
以上是生活随笔為你收集整理的java自学笔记_JAVA自学笔记(4)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 35岁学嵌入式合适吗_什么是嵌入式技术?
- 下一篇: Java IO深入