哪个网站做美食视频网站好乐清建网站

张小明 2026/1/13 8:37:35
哪个网站做美食视频网站好,乐清建网站,网站开发课设心得,广州知名网站建设哪家公司好1 类的结构​ Groovy 是面向对象编程语言#xff0c;与 Java 语言类似#xff0c;都有类、对象、属性、构造函数、成员函数#xff0c;都有封装、继承、多态三大特性。1.1 执行顺序​ 如下#xff0c;Student 类是一个自定义的类#xff0c;里面包含了一个类的基本结构。c…1 类的结构​ Groovy 是面向对象编程语言与 Java 语言类似都有类、对象、属性、构造函数、成员函数都有封装、继承、多态三大特性。1.1 执行顺序​ 如下Student 类是一个自定义的类里面包含了一个类的基本结构。class Student {private static String tag Studentprivate String name zhang sanprivate int age 18static {println(static code, tag$tag)}{println(non-static code, name$name)}Student() { // 无参构造函数println(create-1, name$name, age$age)}Student(String name, int age) { // 有参构造函数println(create-2, name$name, age$age)this.name namethis.age age}void study() { // 成员函数println(study...)}}def stu1 new Student()stu1.study()println(-----------------------------------------)def stu2 new Student(li si, 23)​ 运行程序后打印如下。static code, tagStudentnon-static code, namezhang sancreate-1, namezhang san, age18study...-----------------------------------------non-static code, nameli sicreate-2, nameli si, age23​ 类的初始化顺序如下​ 父类静态代码块 → 子类静态代码块 → 父类属性初始化 → 父类非静态代码块 → 父类构造函数 → 子类属性初始化 → 子类非静态代码块 → 子类构造函数。1.2 Setter 和 Getter 方法class User {String nameUser(String name) {this.name name}void setName(String name) {this.name xxx_$name}String getName() {return yyy_$name}}User user new User(zhang san)println(user.name) // 打印: zhang sanprintln(user.name) // 打印: yyy_zhang sanuser.name li siprintln(user.name) // 打印: li siprintln(user.name) // 打印: yyy_li siuser.name wang wuprintln(user.name) // 打印: xxx_wang wuprintln(user.name) // 打印: yyy_xxx_wang wu​ 说明user.name 调用的是 name 属性的 Setter / Getter 方法user.name 是直接修改 / 访问 name 属性。2 封装​ 封装是指将相关联的属性和函数封装到同一个类中并且可以控制这些属性和函数的访问权限它通过隐藏内部细节和提供清晰的接口提高了代码的安全性、可维护性和可理解性它是面向对象编程中的重要概念之一。​ 在 Groovy 中有四种访问权限修饰符private、default、protected 和 public。这些修饰符控制了代码中类、函数、属性等成员的可见性和访问权限。private只能在类内部访问。default如果没有指定访问修饰符默认为包级私有只能在同一个包内访问。protected只能在类内部、子类以及同一包内访问。public可以在任何地方访问。3 继承​ 继承是指一个类称为子类或派生类基于另一个类称为父类或基类创建新类子类继承了父类的属性和函数并且可以在此基础上进行扩展或修改它是面向对象编程中的重要概念之一。在 Groovy 中继承使用 extends 来表示Object 类是所有类的基类。class People {String nameint age{println(People non-static code, name$name, age$age) // 1}People(String name, int age) {println(People constructor-1, name$name, age$age) // 2this.name namethis.age ageprintln(People constructor-2, name$name, age$age) // 3}}class Student extends People {int id{println(Student non-static code, name$name, age$age, id$id) // 4}Student(String name, int age, int id) {super(name, age)println(Student constructor-1, name$name, age$age, id$id) // 5this.id idprintln(Student constructor-2, name$name, age$age, id$id) // 6}}def stu new Student(zhang san, 23, 1001)​ 说明子类必须直接或间接调用一下父类的一个构造函数否则编译报错如果用户没有显式调用父类构造函数编译后会自动调用父类的无参构造函数如果父类没有无参构造函数就会编译报错。​ 运行程序后打印如下。People non-static code, namezhang san, age23People constructor-1, namezhang san, age23People constructor-2, namezhang san, age23Student non-static code, namezhang san, age23, id1001Student constructor-1, namezhang san, age23, id1001Student constructor-2, namezhang san, age23, id10014 多态​ 多态是指同一个函数可以在不同的对象上表现出不同的行为这种行为通常通过继承和接口来实现。多态使得代码更加灵活和可扩展是面向对象编程中的重要概念之一。4.1 覆盖函数class People {String namePeople(String name) {this.name name}void say() {println(People say)}}class Student extends People {int idStudent(String name, int id) {super(name)this.id id}Overridevoid say() {println(Student say)}}People peo new Student(li si, 1002)peo.say() // 打印: Student say4.2 类型智能转换class People {}class Student extends People {void study() {println(study...)}}People peo new Student()peo.study() // 打印: study...​ 说明Java 没有智能转换特性需要进行强制类型转换。Groovy是一种动态类型语言它在运行时进行类型检查和方法解析。5 抽象类abstract class​ 使用 abstract 修饰的类称为抽象类抽象类中可以有抽象函数这些函数被添加了 abstract 修饰符父类不能实现子类必须重写实现子类如果也是抽象类除外。抽象类不能被实例化只能实例化其具化子类抽象类中允许有具化的函数。abstract class People {String name xiao minabstract void say()}class Student extends People {Overridevoid say() {println($name: Hello)}}//def peo new People() // 编译报错, 抽象类不能被实例化def stu new Student()stu.say() // 打印: xiao min: Hello6 接口interface​ 接口与抽象类有些类似接口里只有常量和抽象函数函数允许有默认实现Groovy 中允许一个类实现多个接口但最多只能继承一个类。interface A {String x xxxdefault void aFun() {println(A, x$x)}}interface B {void bFun()}class C implements A, B {Overridevoid bFun() {println(bFun)}}def c new C()c.aFun() // 打印: A, xxxxc.bFun() // 打印: bFun​ 运行程序后打印如下。A, xxxxbFun7 枚举类型enumenum Color {RED(red) {Overridevoid test() {println(test, $tag)}},GREEN(green) {Overridevoid test() {println(test, $tag)}},BLUE(blue) {Overridevoid test() {println(test, $tag)}}final String tagColor(String tag) {this.tag tag}void printColor() {println(color$tag)}abstract void test()}
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

个人网站需要建站群吗怎么查询网站备案接入商

XSLT 变量与参数的深入解析 在 XSLT 编程中,变量和参数扮演着至关重要的角色。它们不仅能让代码更易读、可维护,还能显著提升处理效率。下面我们将详细探讨 XSLT 中变量和参数的定义、使用方法以及相关注意事项。 1. 变量的定义与使用 在 XSLT 里,变量可通过 <xsl:va…

张小明 2026/1/11 21:50:18 网站建设

陕西因酷网站建设中国设计网站导航

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个Druid连接池配置优化工具&#xff0c;能够根据数据库类型、服务器配置和应用负载特征&#xff0c;自动推荐最优的连接池参数设置。要求支持MySQL、PostgreSQL等常见数据库&…

张小明 2026/1/8 13:13:38 网站建设

高端企业网站公司如何改wordpress网站图标

01 引言&#xff1a;我们不是在画图&#xff0c;而是在构建“认知模型” 面对一个庞大、陌生且文档缺失的技术系统&#xff0c;许多工程师的第一反应是&#xff1a;“给我架构图。” 然而&#xff0c;真正的挑战往往在此刻浮现&#xff1a;你拿到了一张布满方框和连线的图表&…

张小明 2026/1/12 2:19:51 网站建设

去后台更新一下网站wordpress header scroll style

全球化电商的测试新范式‌ 在数字经济浪潮下&#xff0c;电商平台的全球化运营已成为常态。一个典型的全球化电商平台&#xff0c;往往需要支撑多语言、多货币、多时区、本地化支付与物流&#xff0c;并同时满足如欧盟GDPR、中国《个人信息保护法》等不同司法管辖区的数据合规…

张小明 2026/1/6 4:35:56 网站建设

做外贸哪个网站比较好北京十大装饰公司排名有哪些

5分钟掌握XXMI启动器&#xff1a;多游戏模组管理的终极解决方案 【免费下载链接】XXMI-Launcher Modding platform for GI, HSR, WW and ZZZ 项目地址: https://gitcode.com/gh_mirrors/xx/XXMI-Launcher 还在为不同游戏安装繁琐的模组工具而烦恼吗&#xff1f;XXMI启动…

张小明 2026/1/12 19:20:43 网站建设

郑州网站设计crm免费版

服务性能优化技术全解析 1. 服务数据签名与配置优化 1.1 数据签名确保完整性 以 Standard Mold 的 Catalog 服务为例,该服务传输的数据既不敏感也不机密,所以在响应服务请求时,从业务需求角度看无需加密目录数据。不过,为保证目录数据准确,架构师认为无需加密,但决定对…

张小明 2026/1/10 23:11:37 网站建设