java基础语法(二)

二、Java基础语法 这里需要注意的是,短路操作,比如或操作,会从左向右依次进行比较,有结果为真时整个条件为真就会直接跳出,不在对后面表达式进行比较;,用于判断两个数据之间的大小关系,计算结果为boolean值,如果成立返回为true,否则为false。这里介绍的术语仅限可以解基础算法题目,随着题目的不断难度增加再去学习进阶语法,解决更复杂的问题。输出小球反弹的高度和经过的距离(先输出反弹的高度再输出经过的距离,中间用空格隔开),与是必须同时为真条件为真,或是一真条件为真,非是条件取反。支持 if 、if… 阅读详情

 本文为自学总结,如有错误请大佬指正。

目录

 一.继承

1.概念

2.语法格式

3.子类特点

4.构造方法的访问特点

5.注意事项

6.子类访问父类和父类访问子类

6.1方法重写

6.2子类访问父类

6.3super

6.4super与this的区别 

6.5 父类访问子类

7.权限修饰符

8.static 

8.1概念

8.2static的访问特点

9.final

9.1概念

9.2final修饰局部变量 

二.多态

1.多态的概念

 2.多态成员的访问特点

3.多态的转型

3.1向上转型

3.2向下转型

3.3多态的好处和弊端

三.抽象类

1.概念

2.抽象类的特点

3.抽象类成员的特点

4.抽象类的使用

四.接口

1.概念

2.接口特点

3. 接口成员特点

4.抽象类与接口的区别

五.内部类

1.内部类的概念

2.内部类格式

3.内部类的访问特点

4.内部类的分类

5.成员内部类

6.局部内部类



 一.继承

学会了两个类的使用,接下来了解两个类的关系--继承

1.概念

继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。

继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。

2.语法格式


 public class 子类 extends 父类{}

举例

public class Zi extends Fu{}

  • Zi:是子类,也称派生类
  • Fu:是父类也称基类,超类

3.子类特点

  • 具有父类内容
  • 也可以具有自己独特的内容

4.构造方法的访问特点

5.注意事项

  1. 类支持单继承,不支持多继承
  2. 类支持多层继承
  3. 子类无法直接使用父类中私有的内容。

6.子类访问父类和父类访问子类

如果父类中的变量与方法和子类同名怎么办?访问顺序是什么?

这就涉及了方法重写

6.1方法重写

概念:

子类中出现与父类一模一样的方法时(返回值类型,方法名和参数列表都相同),会出现覆盖效果,也称为重写或者复写

应用场景:

当子类需要父类的功能,而功能主体子类有自己特有内容时,可以重写父类中的方法,这样,即沿袭了父类的功能,又定义了子类特有的内容

Override注解:

  • -@Override:注解,重写注解校验!
  • 这是注解标记的方法,就说明这个方法必须是重写父类的方法。
  • 建议重写都加上这个注解,一方面可以提高代码的可读性,一方面可以防止重写出错!
  • 子类重写父类方法的时候,访问权限需要大于等于父类

注意:

  • 私有方法不能被重写(父类私有成员子类是不能继承的)
  • 子类方法访问权限不能更低(public > protected > default > private)
  • 父类中的静态方法不能被重写,如果子类也有相同的方法,并不是重写的父类的方法,而是将父类同名的方法隐藏了起来。

6.2子类访问父类

先定义个Anima类

    public class Animal {
        String name="小动物";
        public void eat() {
            System.out.println(name + "吃东西");
        }

        public void sleep() {
            System.out.println(name + "在睡觉");
        }

    }

再定义个Dog类

public class Dog extends Animal {
    public Dog() {

    }
    void bark() {
        System.out.println(name + "旺旺~");//name继承Anima类
    }
}

在Test类测试输出  

public class Test {

    public static void main(String[] args) {
        Dog dog = new Dog();
        System.out.println(dog.name);
        dog.eat();
        dog.sleep();
        dog.bark();
    }

}

结果:

如果Dog类里也有变量name,方法eat

public class Dog extends Animal {

    String name="狗";
    void bark() {
        System.out.println(name + "旺旺~");
    }
    @Override
    public void eat() {
        System.out.println("狗吃东西");
    }
}

结果:

会发现子类访问父类时,先看本类里有没有,然后再去父类里找.

如果子类与父类方法的参数列表不同则构成重载,根据方法调用的参数列表选择合适的方法

6.3super

如果我就想调用父类方法怎么办?Super就提供了这个功能

public class Dog extends Animal {

//    String name="狗";
    void bark() {
        System.out.println(name + "旺旺~");
    }
    @Override
    public void eat() {
        System.out.println("狗吃东西");
        super.eat();//在子类调用父类的eat方法
    }
}

Test类

public class Test {

    public static void main(String[] args) {
        Dog dog = new Dog();
        System.out.println(dog.name);
        dog.sleep();
        dog.bark();
        dog.eat();
    }

}

结果:

6.4super与this的区别 

 

6.5 父类访问子类

有的人想用父类访问子类,但是这样做继承的意义何在?虽然可以但不推荐。

7.权限修饰符

8.static 

8.1概念

8.2static的访问特点

9.final

9.1概念

9.2final修饰局部变量 

二.多态

1.多态的概念

同一个对象,在不同的时刻表现的不同形态

举例:猫

我们可以说:猫 cat=new 猫();

也可以说:动物 animal =new 猫();

多态的前提与体现:

  • 有继承/实现关系
  • 有方法重写
  • 有父类引用指向子类对象

 2.多态成员的访问特点

  • 成员变量:编译看左边,执行看左边
  • 成员方法:编译看左边,执行看右边

 举例:

定义Anima类

package animal;

    public class Animal {
        String name="小动物";
        public void eat() {
            System.out.println(name + "吃东西");
        }

        public void sleep() {
            System.out.println(name + "在睡觉");
        }

    }

定义Dog类

package animal;

public class Dog extends Animal {
    @Override
    public void eat() {
        System.out.println("狗吃东西");
    }
}

定义Cat类

package animal;

public class Cat extends Animal {

    @Override
    public void eat() {
        System.out.println("猫吃东西");
    }
}

在Test类进行测试

package animal;

public class Test {

    public static void main(String[] args) {
        Animal dog = new Dog();
        Animal cat =new Cat();
        cat.eat();
        dog.eat();


    }
}

结果

 如果我向Dog类添加变量num,并将权限改到最大

 public int num=10;

结果爆红:

 这就牵扯到了多态的转型

3.多态的转型

3.1向上转型

格式: 父类名  变量名=new 子类名(); 

由下向上是自动的

本质:父类的引用指向子类的对象

  • 不能调用子类的特有成员

3.2向下转型

 本质:父类引用转为子类引用

 格式:子类名 变量名=(子类名)父类名;

  • 不能强制转换父类的对象,只能转引用
  • 必须指定子类类型
  • 可以调用子类类型所有成员

3.3多态的好处和弊端

三.抽象类

1.概念

Java中一个没有方法体的方法应该定义为抽象方法,而类中有抽象方法就必须定义为抽象类

2.抽象类的特点

3.抽象类成员的特点

4.抽象类的使用

看看抽象类在多态的使用

先定义抽象类Animal

    abstract public class Animal {
        String name="小动物";
        abstract void eat() ;//抽象方法不能有方法主体

        public void sleep() {
            System.out.println(name + "在睡觉");
        }

    }

子类Dog继承Animal

public class Dog extends Animal {
    @Override
    public void eat() {
        System.out.println("狗吃东西");
    }
}

如果不重写就报错

这时候就体现了抽象类的好处了,如果你想要重写父类的一个方法但忘了,系统就会提醒你。

四.接口

1.概念

在Java中接口更多体现在对行为的抽象

2.接口特点

3. 接口成员特点

成员方法只能是抽象方法,我们也可以理解它是一个抽象类。里面全是全局变量和抽象方法组成。

4.接口的使用

说白了,如果使用接口,那么就必须把里面的抽象方法全部重写一遍,接口才会承认你,或者你自己是抽象类

举例

定义接口Animal

public interface Animal {
      int a=1;//默认是被final修饰的,这里就不需要加了
    public abstract void eat();
    public abstract void sleep();

}

定义接口实现类Dog

public class Dog implements Animal{
    @Override
    public void eat() {
        System.out.printf("狗在吃东西");
    }
    @Override
    public void sleep(){
        System.out.printf("狗在睡觉");
    }
}

在Test类里进行测试

public class Test {
    public static void main(String[] args) {
        Dog dog=new Dog();
        dog.eat();
        dog.sleep();
        System.out.println(dog.a);
    }
}

结果

4.抽象类与接口的区别

五.内部类

你是否想过一个类里面能不能再定义个类,这当然可以,它有个名字叫做内部类

1.内部类的概念

在A类里定义B类,B类就叫做内部类

2.内部类格式

public class 类名{
修饰符 class 类名{



} 
}

3.内部类的访问特点

  • 内部类可以直接访问外部类的成员,包括私有变量
  • 外部类要想访问内部类必须创建对象

4.内部类的分类

  • 在类的成员位置:成员内部类
  • 在类的局部位置:局部内部类

5.成员内部类

成员内部类创建对象格式:外部类.内部类 对象名 = 外部类对象.内部类对象

public class Test {
    
public class test2{//test2为成员内部类
    
public void inner(){
    System.out.println("我是成员内部类");
}

}

    public static void main(String[] args) {
        Test.test2 demo = new Test().new test2();

    }
}

6.局部内部类

局部内部类是定义在外部类的局部位置,比如方法中,并且有类名,外界无法直接使用,需要在方法内部创建对象并使用。 但不能被修饰符修饰如public,但可以被final修饰。

public class Test {
    
    
public void A1(){
       class test2{//在方法里定义局部内部类
               public void inner(){
                       System.out.println("我是局部内部类");
               }
             }
       test2 demo =new test2();//在方法里创建局部内部类的对象
       demo.inner();//调用局部内部类的方法
}

    public static void main(String[] args) {
      Test demo1=new Test();//创建外部类对象
      demo1.A1();//调用方法,从而间接地调用局部内部类的方法
    }
}

 结果

ok,本次学习就此结束。

二、Java语法基础 1)变量命名规范首字母可以是:_,$,字母其余可以是:_,$,字母,数字不能以关键字命名书写规范:首字母小写,以后出现饿单词首字母大写2)变量的使用步骤声明变量类型给变量给起别名给变量赋值比如 int money=1500;3)变量的值如何交换这样交换的结果是什么?运行结果如下:4)常量类中的常量是指类的属性,通常以public static final 关键字修饰。如:public static final String COUNTRY = "中国" 阅读详情

相关推荐

H3C-V7防火墙配置SSL VPN IP资源典型案例(华三)

H3C-V7防火墙配置SSL VPN IP资源典型案例(华三)

m0_68265458的博客 5170

二、JAVA语法基础

JAVA语法基础

Hannaseyes博客世界 3007

LTE信令流程——切换

LTE信令流程 切换 切换是由基站发起的,不同于小区重选,小区重选是由UE发起的。 基站利用移动性管理算法给UE下发测量任务,在RRC重配置消息中携带MeasConfig信元给UE下发测量配置 切换有三种场景: 同一基站内不同小区的切换 不同基站间基于X2的切换(MME不变) 不同基站间基于S1的切换(MME/SGW可能改变) 1. 同一基站内不同小区的切换 连接态的UE在一个基站的不同小区之间移动 UE上报合适的测量报告(Measure Reports),触发基站切换 基站下发切换命令给UE,

Hxx的博客 1万+

Java 基础语法【二】

一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。下面简要介绍下类、对象、方法和实例变量的概念。

m0_74825238的博客 679

CentOS 7.9安装python3.11

CentOS 7.9安装python3.11

leafseelight的专栏 1343

WPF进阶 | 深入 WPF 依赖项属性:理解其强大功能与应用场景

WPF进阶 | 深入 WPF 依赖项属性:理解其强大功能与应用场景,在 Windows Presentation Foundation(WPF)开发中,依赖项属性是一个核心且强大的特性,它为构建灵活、可扩展的用户界面提供了关键支持。理解并熟练运用依赖项属性,对于开发高效、健壮的 WPF 应用程序至关重要。本文将深入探讨 WPF 依赖项属性,通过丰富的代码示例和对关键概念的详细解释,帮助读者全面掌握这一重要特性及其应用场景。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 4万+

Java基础语法【二】

文章目录Java基础语法第一节 标识符1.1概念1.2 标识符的命名规则1.3 标识符命名习惯1.4 关键字保留字第二节 常量、变量2.1 常量2.2 变量2.2 变量的初始化和声明2.3 变量的分类2.4 局部变量和成员变量的区别第三节 数据类型3.1 基本数据类型3.2 基本数据类型的存储3.3 整数型3.4 浮点型3.5 字符型3.6 布尔类型3.7 Java数据类型总结3.8 基本数据类型...

weixin_42605214的博客 809

ABAP GIT 作用介绍

总结起来,ABAPGit 是一个强大的工具,它通过将 SAP ABAP 项目与 Git 版本控制系统集成,大大提高了代码管理的效率和团队协作的质量。在 ABAPGit 出现之前,ABAP 代码的版本控制和团队之间的协作主要依赖于手工操作或者是 SAP 自带的版本控制工具,这些方式效率低下,且难以实现高效的代码管理。使用 ABAPGit,SAP 项目团队不仅可以提高代码管理的效率和质量,还可以通过 Git 的强大功能实现高效的团队协作和代码审查。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 839

【二】Java基础语法

在声明变量的数据类型前面加final的方式实现,加final修饰后,这个变量的值就不能修改了,一开始赋值多少,就是多少,所以此时的变量名通常称为常量名。(3)变量、方法名等:从第二个单词开始首字母大写,其余字母小写,形式:xxxYyyZzz,(5)常量名等:每一个单词都大写,单词之间使用下划线_分割,形式:XXX_YYY_ZZZ,(4)包名等:每一个单词都小写,单词之间使用点.分割,形式:xxx.yyy.zzz,变量的作用:用来存储数据,代表内存的一块存储区域,这块内存中的值是可以改变的。

chang_jx的博客 1938

【反封禁策略】集成 Undetected-Chromedriver:让 Browser-Use 绕过 Cloudflare 五秒盾

摘要:AI Agent如何突破Cloudflare检测的实战指南 本文针对AI Agent在Cloudflare检测下频繁受阻的问题,深入分析了undetected-chromedriver的工作原理与局限性。文章指出,Cloudflare 2026年的检测体系已升级为"浏览器指纹+IP信誉+协议指纹+行为模式"的多维交叉验证,单一伪装方案难以奏效。 核心内容包括: undetected-chromedriver的三层补丁体系解析 v2与v3版本的适用场景对比 两种Browser-Use集成方案:Selen

ZDQ58818的博客 284

华为OD机试真题2026双机位C卷 Python&JS 实现【明日之星选举】

给定一组选票votes。votes[i]代表第 i 张选票的内容,包含一个字符串"zhangsan,hanmei",表示推荐zhangsan为明日之星,反对 hanmei 称为明日之星。赞成或反对使用逗号(,)分割。 给定一个数组n,表示最后将筛选出赞成票最多的n个人,如果赞成票相同,则反对票越少,排序越靠前;如果赞成票和反对票都相同,则按照姓名字典序升序排序。

MISAYAONE的博客 320

二、java基础语法

本节内容如下:给 给

ZERO.ONE的博客 309

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

java 基本语法 二_Java基础(二)Java 基础语法

Java 基础语法一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。下面简要介绍下类、对象、方法和实例变量的概念。对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。类:类是一个模板,它描述一类对象的行为和状态。方法:方法就是行为,一个类可以有很多方法。逻辑运算、数据修改以及所有动作都是在方法中完...

weixin_30373263的博客 212

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

java基础二——基本语法

文章目录java基本语法一. 关键字和保留字1.1 关键字(keyword)1.2 保留字二. 标识符2.1 ==标识符命名规则==2.2 java命名规范三. 变量3.1 变量概述3.1.1 ==使用变量注意==3.1.2 变量的声明与赋值3.1.3 成员变量和局部变量3.2 变量数据类型3.2.1 基本数据类型3.2.2 引用数据类型 java基本语法 一. 关键字和保留字 1.1 关键字(...

Lnd_Niu的博客 299

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Java学习二—基础语法

在Java编程世界中,注释是一道不可或缺的明灯,为开发者提供了代码背后的灯塔。它们是代码的解释者,为我们提供了更深层次的理解,从而提高了可读性、可维护性和团队协作效率。

qq_17153885的博客 1011

Java基础语法二

DAY2 一. 算术运算符 1. 基本运算符 +(加)、-(减)、×(乘)、/(除)、%(取余) 在Java中如果两个整数做运算,那么结果也是整数;如果结果想要小数,那么在除数或者被除数之后乘以1.0f 2. “++与- -” ++:使自身的值加1 参与运算: 前++:先使自身的值加1,然后再参与运算; 后++:先参与运算,然后使自身的值加1; 单独使用 前++和后++的结果是一样的 --:使...

qq_36633450的博客 242

第一阶段:Java基础入门②Java基础语法

本章详细介绍Java基础语法,包括8种基本数据类型(byte、int、double等)、变量声明与作用域、自动与强制类型转换、运算符优先级、Scanner输入输出操作等核心概念,配有代码示例和实战练习

CodingPhilosophy的博客 1026

Java基础语法 (基础介绍 二)

java的基础语法,对象和类的基础介绍与使用。

weixin_64261178的博客 919

java基础(二)、基础语法

java基础语法 要学习java的基础语法,首先我们要学习一定的计算机基础知识,例如进制、原码反码补码等;那我们先来看一下进制是怎么一回事:进制也就是进位制,是人们规定的一种进位方法。 对于任何一种进制—X进制,就表示某一位置上的数运算时是逢X进一位例如二进制就是逢二进一,十进制就是逢十进一… 十进制的起源   人类算数采用十进制,可能跟人类有十根手指有关。亚里士多德称人类普遍使用十进制,只不过是...

weixin_44216392的博客 561

Java基础语法(二)

Java基础语法(二) 文章目录Java基础语法(二)一、程序注释二、Java关键字和标识符关键字概念关键字特点标识符概念标识符定义的原则三、数据类型 一、程序注释 考虑到程序的可读性可维护性特点,注释是必不可少的。注释是给人看的,计算机不会执行注释内容。 单行注释 //注释文字 多行注释 /*注释文字*/ 适用于编写大段的说明文字 文档注释 /**注释文字*/ 一般解释层次结构、类和方法 二、Java关键字和标识符 关键字 概念 Java中具备特殊含义的单词,如class、char、try。 关键字特

ericszxh的博客 445
上一篇: java基础语法之字符串
下一篇: 如何快速使用idea运行jsp文件
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

叶枯雪落光仍在

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

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

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

打赏作者

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

抵扣说明:

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

余额充值