爆款云主机2核4G限时秒杀,88元/年起!
查看详情

活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 618智算钜惠季 爆款云主机2核4G限时秒杀,88元/年起!
  • 免费体验DeepSeek,上天翼云息壤 NEW 新老用户均可免费体验2500万Tokens,限时两周
  • 云上钜惠 HOT 爆款云主机全场特惠,更有万元锦鲤券等你来领!
  • 算力套餐 HOT 让算力触手可及
  • 天翼云脑AOne NEW 连接、保护、办公,All-in-One!
  • 中小企业应用上云专场 产品组合下单即享折上9折起,助力企业快速上云
  • 息壤高校钜惠活动 NEW 天翼云息壤杯高校AI大赛,数款产品享受线上订购超值特惠
  • 天翼云电脑专场 HOT 移动办公新选择,爆款4核8G畅享1年3.5折起,快来抢购!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

智算服务

打造统一的产品能力,实现算网调度、训练推理、技术架构、资源管理一体化智算服务
智算云(DeepSeek专区)
科研助手
  • 算力商城
  • 应用商城
  • 开发机
  • 并行计算
算力互联调度平台
  • 应用市场
  • 算力市场
  • 算力调度推荐
一站式智算服务平台
  • 模型广场
  • 体验中心
  • 服务接入
智算一体机
  • 智算一体机
大模型
  • DeepSeek-R1-昇腾版(671B)
  • DeepSeek-R1-英伟达版(671B)
  • DeepSeek-V3-昇腾版(671B)
  • DeepSeek-R1-Distill-Llama-70B
  • DeepSeek-R1-Distill-Qwen-32B
  • Qwen2-72B-Instruct
  • StableDiffusion-V2.1
  • TeleChat-12B

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场创新解决方案
办公协同
  • WPS云文档
  • 安全邮箱
  • EMM手机管家
  • 智能商业平台
财务管理
  • 工资条
  • 税务风控云
企业应用
  • 翼信息化运维服务
  • 翼视频云归档解决方案
工业能源
  • 智慧工厂_生产流程管理解决方案
  • 智慧工地
建站工具
  • SSL证书
  • 新域名服务
网络工具
  • 翼云加速
灾备迁移
  • 云管家2.0
  • 翼备份
资源管理
  • 全栈混合云敏捷版(软件)
  • 全栈混合云敏捷版(一体机)
行业应用
  • 翼电子教室
  • 翼智慧显示一体化解决方案

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
  • 天翼云EasyCoding平台
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼云东升计划
  • 适配中心
  • 东升计划
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
开放能力
  • EasyCoding敏捷开发平台
培训与认证
  • 天翼云学堂
  • 天翼云认证
魔乐社区
  • 魔乐社区

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 建议与反馈
  • 用户体验官
  • 服务保障
  • 客户公告
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 智算服务
  • 产品
  • 解决方案
  • 应用商城
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心

      [笔记] 疯狂JAVA讲义(第3版)第5章 面向对象(上)

      首页 知识中心 其他 文章详情页

      [笔记] 疯狂JAVA讲义(第3版)第5章 面向对象(上)

      2023-03-01 02:38:47 阅读次数:501

      构造器,父类,java

      第5章 面向对象(上)

      5.1 类和对象

      类可以当成是一种自定义类型,可以使用类来定义变量。这种类型变量称为引用变量。

      5.1.1 定义类

      [修饰符] class 类名

      {

      构造器

      成员变量

      方法

      }

      各成员之间的定义顺序没有任何影响,各成员之间可以相互调用。

      @static成员不能调用非static 成员。

      成员变量用于定义类包含的状态数据,方法用于定义类的行为或功能实现。构造器用于构造类的实例,java通过new调用构造器,返回类的实例。

       

      定义成员变量的语法:

      [修饰符] 类型 成员变量名 [=默认值];

      定义方法的语法:

      [修饰符] 返回值类型 方法名(形参列表)

      {//方法体}

      定义构造器的语法

      [修饰符] 构造器名(形参列表)

      {}

      构造器名必须和类名相同

       

      @static 是一个特殊的关键字,static修饰的成员表明它属于这个类本身,而不属于类的单个实例。

       

       

      定义一个Person类:

      public class Person

      {

          public String name;

          public int age;

       

          public void say(String content){

              System.out.println(content);

          }

      }

       

      Person没有定义构造器,系统为它提供默认构造器。

       

      5.1.2 对象的产生和使用

      创建对象的途径是构造器,通过new即可调用构造器来创建实例。

      Person p;

      p = new Person();

       

      @可以简写为 Person p = new Person();

       

      使用对象:

      1、访问对象的实例变量

      2、调用对象的方法

      p.name = “李刚”;

      p.say(“Java很简单”);

       

      @static修饰的方法和变量,既可以通过类来调用,也可以通过实例来调用。

       

       

      5.1.3 对象、引用和指针

      和数组类似,类也是一种引用类型。

      Person p2 = p; 其实是将p的地址赋值给p2,p2和p指向的是同一个Person对象。

       

       

      5.1.4 对象的this引用

      this关键字总是指向调用该方法的对象。

      this的使用有两种情形:

      1、构造器中引用该构造器正在初始化的对象

      2、在方法中引用调用该方法的对象。

      this最大的作用就是让类中的一个方法,访问该类的另一个方法或实例变量。

       

      假设有一个Dog类

      Dog类有jump()方法,现在定义一个run()方法,要在run()方法中调用jump()

      public void run(){

      this,jump();

      }

      @java允许对象的一个成员直接调用另一个成员,可以省略this前缀

       

      当方法中的某个局部变量和成员变量同名时,要使用被覆盖的成员变量,就要使用this前缀。

      public Test{

      public int foo;

      public Test{

      int foo = 0;

      this.foo = 6;

      }

      }

       

      5.2 方法详解

      方法是类或对象的行为特征的抽象。从功能上看,方法完全类似于传统结构化程序设计中的函数。

      5.2.1 方法的所属性

      方法是类和对象的附属。体现在:

      1、方法不能独立定义,只能在类中定义

      2、从逻辑上看,方法要么属于类本身,要么属于类的一个对象

      3、永远不能独立执行方法,执行方法必须使用类或对象作为调用者。

       

      5.2.2 方法的参数传递机制

      Java方法的参数传递方式只有一种,值传递。 //将实际参数值的副本传入方法内,参数本身不受影响

      引用类型传递仍然是值传递,但传递的是引用的副本,通过操作副本来访问对象也会改变对象本身。

      (因为对象就是在堆内存里的那一个对象,并没有复制另一个对象,复制的是引用变量)

      [笔记] 疯狂JAVA讲义(第3版)第5章 面向对象(上)

       

      5.2.3 形参个数可变的方法

      定义方法时,在最后一个形参的类型后面加三点…,表明该形参可以接收多个参数值。多个参数值被当成数组传入。

      public class Varargs

      {

         public static void test(int a, String… books)

        {

         for(String tmp : books)

      {

        System.out.println(tmp);

      }

      System.out.println(a);

      }

      }

       

      5.2.4 递归方法

      方法调用自身,构成递归。

       

      5.2.5 方法重载

      Java允许一个类里里定义多个同名方法,只要形参列表不同就行。

      如果一个类包含多个同名方法,则称为方法重载。

       

      5.3 成员变量和局部变量

      5.3.1 成员变量和局部变量

      成员变量值在类里定义的变量,局部变量是在方法里定义的变量。

       

       

      [笔记] 疯狂JAVA讲义(第3版)第5章 面向对象(上)

       

      成员变量分为类变量和实例变量两种,定义成员变量时没有static修饰时就是实例变量,有static修饰就是类变量。

      类变量在该类的准备阶段起就存在,直到系统完全销毁这个类,类变量的作用域和类的生存范围相同。

      而实例变量则时从实例创建起存在,直到实例被销毁。

      @成员变量无需显式初始化。系统会默认初始化。

       

      局部变量根据定义形式不同,可以被分成3种。

      形参,方法局部变量,代码块局部变量。

      局部变量除了形参之外,都必须显式初始化。

       

      5.3.2 成员变量初始化和内存中的运行机制

      系统加载类或创建类的实例时,自动为成员变量分配内存空间,指定初始值。

       

      5.3.3 局部变量的初始化和内存中的运行机制

      局部变量定义后,必须经过显式初始化才能使用,系统不会为局部变量执行初始化。

      定义局部变量后,系统并未为这个变量分配内存空间,知道赋初始值时,才分配内存。

      局部变量不属于类或实例,因此它总是保存在其方法的栈内存中。

       

      5.3.4 变量的使用规则

      应该使用成员变量的情形:

      1、变量用于描述某个类或对象的属性,比如人的身高,体重,应该使用成员变量。

      如果是类相关,比如人的眼睛数量,应该所有人的眼睛都是2个,则应该定义为类变量。

      2、变量用来保存类或实例的状态信息。比如五子棋的棋盘数组。

      3、变量需要在多个方法间共享。

       

      如果可能,尽量缩小局部变量的范围,节约内存的使用。

       

      5.4 隐藏和封装

      5.4.1 理解封装

      封装指将对象的状态信息隐藏在对象内部,不允许外界直接访问对象内部信息,而是通过类提供的方法来实现对内部信息的操作和访问。

       

      5.4..2 使用访问控制符

      Java提供3个访问控制符:private protected public,代表3个访问控制级别。

      另外还有一个默认的级别。

      [笔记] 疯狂JAVA讲义(第3版)第5章 面向对象(上)

       

      private(当前类访问权限)

      default(包访问权限)

      protected(子类访问权限)

      public(公共访问权限)

      [笔记] 疯狂JAVA讲义(第3版)第5章 面向对象(上)

       

      @如果一个Java源文件没有publc 类,则Java源文件文件名可以是任意的。如果有public类,则文件名必须和public修饰的类名相同

       

      实例:(使用封装的)Person类

      public class Person

      {

          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 this.name;

          }

       

          public void setAge(int age){

              if(age>100 || age<0){

                  System.out.println("年龄不合法");

                  return;

              }

              else{

                  this.age = age;

              }

          }

          public int getAge(){

              return this.age;

          }

      }

      类外,只能使用setter和getter方法来访问Person的属性。

       

       

      @关于控制访问符

      1、类里的绝大部分成员变量都应该使用private修饰,只有一些static修饰的,类似全局变量的成员变量才考虑public。

      此外,有些方法只用于辅助其他方法的实现,称为工具方法,也应该用private修饰。

      2、如果这个类将作为其他类的父类,里面的方法希望子类重写,而不希望外界调用,应该用protected修饰这些方法。

      3、希望暴露给其他类的应该用public。因此,类的构造器应该用public修饰,允许其他地方创建类的实例。

       

       

      5.4.3 package、import和import static

      package用来解决重名问题

      Java允许将一组相关的类放在一个package下,构成逻辑上的类库单元。

      如果希望将一个类放在指定的包下,应该在源程序的第一个非注释行写下:
      package packageName;

      则这个文件的类都属于这个包。其他人使用该包下的类时,应该使用包名加类名。

       

      将Hello 放在lee包下:

      package lee;

      public class Hello

      {

          public static void main(String[] args){

              System.out.println("Hello, world!");

          }

      }

       

      使用

      javac -d . Hello.java 编译,则会出现一个lee文件夹,里面有Hello.class

       

      进入lee文件夹,执行 java lee.Hello

       

      同一个包下的类可以自由访问,无需添加包前缀。

       

      import 语句:

      为了避免繁琐的前缀,Java引入了import关键字

      import package.subpackage,,,ClassName;

      @使用*表示全部类

      一旦import导入某些类,就可以省略包前缀。

       

      静态导入:

      导入指定类的某个静态成员变量、方法。

      语法:

      import static package.subpackage…ClassName.fieldName|methodName;

       

       

      5.4.4 Java的常用包

      Java核心类都放在Java包及其子包下,Java许多扩展类都放在javax包及其子包下。

      [笔记] 疯狂JAVA讲义(第3版)第5章 面向对象(上)

       

       

       

      5.5 深入构造器

      5.5.1 使用构造器执行初始化

      构造器最大的作用就是创建对象时执行初始化。

      public class ConstructorTest

      {

          public String name;

          public int count;

          public ConstructorTest(String name,int count){

              this.name = name;

              this.count = count;

          }

          public static void main(String[] args){

              ConstructorTest ct = new ConstructorTest("lee", 22);

          }

      }

      @一旦提供自定义的构造器,系统就不再提供默认的构造器

       

       

      5.5.2 构造器重载

      类似方法重载

       

      import jdk.internal.jshell.tool.resources.l10n;

       

      public class ConstructorOverload

      {

          public String name;

          public int count;

          public ConstructorOverload(){}

          public ConstructorOverload(String name,int count){

              this.name = name;

              this.count= count;

          }

          public static void main(String[] args){

              ConstructorOverload  co1 = new ConstructorOverload();

              ConstructorOverload  co2 = new ConstructorOverload("java",111);

             

          }

      }

       

       

      如果包含多个构造器,一个构造器包含另一个构造器全部的执行体。则可以用this调用.

      public class Apple

      {

          public String name;

          public String color;

          public double weight;

          public APPle(){}

          public Apple(String name,String color){

              this.name = name;

              this.color = color;

          }

          public Apple(String name,String color,double weight){

              this(name,color);

              this.weight = weight;

          }

      }

       

       

       

      5.6 类的继承

      Java的继承是单继承,每个子类只有一个直接父类。

      5.6.1 继承的特点

      继承通过extends 关键字实现, 被继承的称为父类,实现继承的称为子类。

      父类和子类的关系,是一般和特殊的关系,例如水果和苹果的关系。苹果是一种特殊的水果。

      继承语法:

      修饰符 class SubClass  extends Supclass

      {

      …

      }

      extends 直译为扩展,可以体现出子类对父类的扩展。

      而现在一般翻译为继承,体现子类获得父类的全部成员变量和方法。

      @子类不会获得父类的构造器。

       

      例:

      public class Fruit

      {

          public double weight;

          public void info(){

              System.out.println("我是一个水果,重"+weight+"g!");

          }

      }

       

       

      public class Apple extends Fruit

      {

         public static void main(String[] args){

             Apple a = new Apple();

             a.weight = 56;

             a.info();

         }

      }

       

       

      5.6.2 重写父类的方法

      大多数时候,子类以父类为基础,扩展新的成员。但有时候,子类要重写父类的方法。例:

       

      public class Bird

      {

          public void fly(){

              System.out.println("起飞...");

              }

      }

       

      //鸵鸟

      public class Ostrich extends Bird

      {

          public void fly(){

              System.out.println("只能在地上跑");

          }

      }

      子类鸵鸟重写(Override)了Bird的fly()方法,重写也称覆盖。

       

       

      方法重写遵循“两同两小一大”规则:

      两同即方法名相同,形参列表相同; 两小指子类方法返回值类型比父类方法返回值类型 更小或相等,子类方法抛出异常比父类方法抛出的异常类更小或相等;

      一大值子类方法的访问权限应该比父类方法访问权限更大或相等。

       

      当子类覆盖父类方法后,子类对象无法访问被覆盖的父类方法,但可以在子类方法中调用父类中被覆盖的方法。使用super或父类类名作为调用者来调用被覆盖的方法。

      如果父类方法使用private修饰,则对子类隐藏。

       

       

       

      5.6.3 super限定

      要在子类中方法中调用被覆盖的父类方法,可使用super限定

       

      public class Ostrich extends Bird

      {

          public void fly(){

              System.out.println("只能在地上跑");

      }

      public void call(){

             super.fly();  //调用父类方法

      }

      }

       

       

      super用于限定对象调用它从父类继承得到的实例变量或方法。

      如果子类定义了和父类同名的实例变量,则会隐藏父类实例变量,通过super可以访问被隐藏的实例变量。

       

      5.6.4 调用父类构造器

      子类不会获得父类构造器,子类构造器里可以调用父类构造器的初始化代码,类似于一个构造器调用另一个重载的构造器。

      在子类中调用父类父类构造器使用super调用。

       

      class Base

      {

          public double size;

          public String name;

          public Base(double size,String name){

              this.size = size;

              this.name = name;

          }

      }

       

      public class Sub extends Base

      {

          public String color;

          public Sub(double size,String name, String color){

              super(size,name); //调用父类构造器

              this.color = color;

          }  

      }

       

       

      @不管是否使用suoer调用父类构造器,子类构造器总会调用父类构造器一次。

       

      5.7 多态

      5.7.1 多态性

      编译时类型由声明该变量的类型决定,运行时类型由实际赋给变量的对象决定。

      如果运行和编译时类型不一致,就会出现多态(Polymorphism)。

       

      class BaseClass

      {

          public int book = 6;

          public void base(){

              System.out.println("父类的普通方法");

          }

          public void test(){

              System.out.println("父类的被覆盖方法");

          }

      }

      public class SubClass extends BaseClass

      {

          public String book = "java";

          public void test(){

              System.out.println("子类覆盖父类的方法");

          }

          public void sub(){

              System.out.println("子类的普通方法");

          }

          public static void main(String[] args){

              BaseClass p = new SubClass();

              p.base();

              p.test(); //

          }

      }

      @与方法不同,对象的实例变量不具有多态性。

       

      5.7.2 引用变量的强制类型转换

      如果要一个引用变量调用它运行时类型的方法,则需要强制类型转换成运行时类型。

      强制类型转换语法:

      (type) variable

       

      强制类型转化并不都可行,因此在强制类型转换之前先通过 instanceof运算符判断是否可以转换:

      if(objPri instanceof String){

        String str = (String) objPri;

      }

       

      5.7.3 instanceof 运算符

      前面的操作数为一个引用类型变量, 后一个操作数通常是一个类。

      用于判断前面的对象是否是后面的类。

      @ 前面的操作数要和后面的类有继承关系,否则会引起编译错误。

       

       

      5.8 继承和组合

       

      5.8.1 使用继承的注意点

      继承带来高度复用的同时,也带来一个严重的问题:继承破坏了父类的封装性,子类可以直接访问父类的内部信息。

      为了确保父类良好的封装性,设计父类应该遵循以下规则:

      1、尽量隐藏父类的内部数据,尽量将父类成员设置为private。

      2、不要让子类可以随意访问,修改父类的方法。父类中的(仅仅辅助其他功能实现的)工具方法,应该使用private修饰。

      如果父类中方法必须为外部使用,又不想子类重写,可以使用final修饰符。 如果希望子类重写,又不希望外部类访问,可以使用protected。

      3、尽量不要在父类构造器调用将要在子类中重写的方法。

      @final class xx  final修饰的类不能被继承

       

      5.8.2 利用组合实现复用(has-a)

      如,借助Arm类实现Person类。

       

       

      5.9 初始化块

      与构造器作用类似。

       

      5.9.1 使用初始化块

      初始化块是Java类中可以出现的第4种成员。一个类可以有多个初始化块,按先后顺序执行。

      初始化块的语法:

      [修饰符] {

      //初始化块的代码

      }

      @修饰符可以是static,称为静态初始化块

       

      当创建Java对象时,系统总是先调用类定义的初始化块。

       

       

      5.9.2 初始化块和构造器

      [笔记] 疯狂JAVA讲义(第3版)第5章 面向对象(上)

       

       

      某种程度上,初始化块是构造器的补充,如果两个构造器都有共同的无需参数的初始化行为,则可以提取到初始化块中。

      @实际上初始化块是一种假象,使用javac编译后,初始化块会被移动到每个构造器中。

       

      5.9.3 静态初始化块

      使用static修饰符的初始化块。静态初始化块是和类相关的,总是在类初始化阶段执行。

       

      静态初始化块和声明静态成员变量时指定初始值 都是类的初始化代码,执行顺序和代码排列顺序相同。

      版权声明:本文内容来自第三方投稿或授权转载,原文地址:https://blog.51cto.com/pigeon/5452239,作者:一只大鸽子,版权归原作者所有。本网站转在其作品的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如因作品内容、版权等问题需要同本网站联系,请发邮件至ctyunbbs@chinatelecom.cn沟通。

      上一篇:LeetCode------斐波那契数列(2)

      下一篇:JVM之动态方法调用:invokedynamic

      相关文章

      2025-05-14 10:02:58

      java休眠到指定时间怎么写

      java休眠到指定时间怎么写

      2025-05-14 10:02:58
      java , sleep , Thread , util , 方法
      2025-05-14 10:02:58

      java项目多端数据同步解决方案

      多端数据同步是指在多个设备(例如桌面应用、移动应用、Web应用)之间保持数据的一致性。

      2025-05-14 10:02:58
      java , Spring , WebSocket , 同步 , 数据 , 版本号
      2025-05-13 09:49:12

      Java学习(动态代理的思想详细分析与案例准备)(1)

      Java学习(动态代理的思想详细分析与案例准备)(1)

      2025-05-13 09:49:12
      java , 代理 , 代码 , 对象 , 接口 , 方法 , 需要
      2025-05-09 08:20:32

      基于IDEA的Maven简单工程创建及结构分析

      通过一个 mvn 命令直接让我们创建一个 Maven 的脚手架。

      2025-05-09 08:20:32
      java , Maven , xml , 创建 , 文件 , 文件夹 , 项目
      2025-05-08 09:03:57

      前K个高频元素java

      给定一个非空的整数数组,返回其中出现频率前 前K个高频元素java 高的元素。

      2025-05-08 09:03:57
      java , 元素 , 样例 , 给定
      2025-05-08 09:03:21

      基于java Swing开发的学生成绩管理系统【项目源码+数据库脚本】

      基于java Swing开发的学生成绩管理系统【项目源码+数据库脚本】

      2025-05-08 09:03:21
      java , Swing , 学生 , 源码
      2025-05-08 09:03:21

      java Swing学生成绩管理系统【项目源码+数据库脚本】

      本项目是一套基于java Swing开发的学生成绩管理系统,主要针对计算机相关专业的正在做bishe的学生和需要项目实战练习的Java学习者。

      2025-05-08 09:03:21
      java , 学生 , 成绩 , 数据库 , 源码
      2025-05-07 09:08:08

      java Swing学生选课管理系统【源码+数据库+报告】

      本项目是一套基于java Swing学生选课管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。

      2025-05-07 09:08:08
      java , 学生 , 截图 , 源码
      2025-05-07 09:08:08

      java swing人机对战五子棋(含背景音乐)

      本项目是一套基于java swing的人机对战五子棋系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。

      2025-05-07 09:08:08
      java , 源码
      2025-05-06 09:19:21

      【30天玩转python】高级面向对象编程

      面向对象编程(Object-Oriented Programming,简称 OOP)是 Python 的核心编程范式之一。Python 不仅支持基础的面向对象特性,如类和对象,还支持更高级的特性,如继承、多态、封装、抽象以及元类等。这些特性使得 Python 的面向对象编程更具灵活性和可扩展性。

      2025-05-06 09:19:21
      Python , 子类 , 父类 , 继承
      查看更多
      推荐标签

      作者介绍

      天翼云小翼
      天翼云用户

      文章

      33561

      阅读量

      5251085

      查看更多

      最新文章

      java休眠到指定时间怎么写

      2025-05-14 10:02:58

      基于IDEA的Maven简单工程创建及结构分析

      2025-05-09 08:20:32

      java中final的用法

      2025-04-11 07:15:54

      使用ZipEntry解压zip文件报错: java.lang.IllegalArgumentException: MALFORMED

      2025-04-09 09:17:07

      总结java中文件拷贝剪切的5种方式-JAVA IO基础总结第五篇

      2025-04-09 09:14:24

      详解js继承的那些事儿

      2025-03-26 09:33:14

      查看更多

      热门文章

      在java正则表达式中为什么要对 . 进行两次的转义操作 (\\.)才表示真正的 .

      2023-05-15 10:01:56

      GC是什么? 为什么要有GC?

      2023-05-10 06:02:16

      axios&spring前后端分离传参规范总结

      2023-05-22 08:09:06

      Jsp Ajax之模拟用户注册

      2022-11-17 12:37:24

      定义一个函数,接收三个参数返回一元二次方程

      2023-02-13 07:59:59

      JAVA基础加强笔记

      2022-11-14 02:56:39

      查看更多

      热门标签

      linux java python javascript 数组 前端 docker Linux vue 函数 shell git 节点 容器 示例
      查看更多

      相关产品

      弹性云主机

      随时自助获取、弹性伸缩的云服务器资源

      天翼云电脑(公众版)

      便捷、安全、高效的云电脑服务

      对象存储

      高品质、低成本的云上存储服务

      云硬盘

      为云上计算资源提供持久性块存储

      查看更多

      随机文章

      方法重写,抽象方法必须重写,抽象类。super.父类里面的方法调用方法。

      设计模式----------工厂模式之简单工厂模式(创建型)

      类加载和通过反射获取类的结构信息

      用户登陆

      java中替换文件内容

      Hashtable基本使用

      • 7*24小时售后
      • 无忧退款
      • 免费备案
      • 专家服务
      售前咨询热线
      400-810-9889转1
      关注天翼云
      • 旗舰店
      • 天翼云APP
      • 天翼云微信公众号
      服务与支持
      • 备案中心
      • 售前咨询
      • 智能客服
      • 自助服务
      • 工单管理
      • 客户公告
      • 涉诈举报
      账户管理
      • 管理中心
      • 订单管理
      • 余额管理
      • 发票管理
      • 充值汇款
      • 续费管理
      快速入口
      • 天翼云旗舰店
      • 文档中心
      • 最新活动
      • 免费试用
      • 信任中心
      • 天翼云学堂
      云网生态
      • 甄选商城
      • 渠道合作
      • 云市场合作
      了解天翼云
      • 关于天翼云
      • 天翼云APP
      • 服务案例
      • 新闻资讯
      • 联系我们
      热门产品
      • 云电脑
      • 弹性云主机
      • 云电脑政企版
      • 天翼云手机
      • 云数据库
      • 对象存储
      • 云硬盘
      • Web应用防火墙
      • 服务器安全卫士
      • CDN加速
      热门推荐
      • 云服务备份
      • 边缘安全加速平台
      • 全站加速
      • 安全加速
      • 云服务器
      • 云主机
      • 智能边缘云
      • 应用编排服务
      • 微服务引擎
      • 共享流量包
      更多推荐
      • web应用防火墙
      • 密钥管理
      • 等保咨询
      • 安全专区
      • 应用运维管理
      • 云日志服务
      • 文档数据库服务
      • 云搜索服务
      • 数据湖探索
      • 数据仓库服务
      友情链接
      • 中国电信集团
      • 189邮箱
      • 天翼企业云盘
      • 天翼云盘
      ©2025 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
      公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
      • 用户协议
      • 隐私政策
      • 个人信息保护
      • 法律声明
      备案 京公网安备11010802043424号 京ICP备 2021034386号