Java学习教程,从入门到精通,Java对象和类语法知识点(20)

1、Java对象和类语法知识点

  1. 类的定义

    • 使用class关键字定义类。
    • 类名通常使用大写驼峰命名法(PascalCase)。
    • 类与对象
      • 类是创建对象的模板或蓝图,它定义了对象的属性和行为。
      • 对象是类的实例,它包含了类定义的数据(属性)和行为(方法)。
  2. 成员变量

    • 类中定义的变量称为成员变量或属性。
    • 可以使用访问修饰符(如private, public, protected)控制访问权限。
  3. 构造方法

    • 与类名相同且没有返回类型的方法称为构造方法。
    • 用于在创建对象时初始化对象的状态。
  4. 方法

    • 类中定义的函数称为方法。
    • 方法可以包含参数和返回类型。
  5. 对象的创建

    • 使用new关键字和类的构造方法创建对象。
    • 对象是对类的一个实例。
  6. 访问对象的成员

    • 使用.运算符访问对象的成员变量和方法。
  7. 封装

    • 使用private关键字隐藏类的属性。
    • 提供public的getter和setter方法访问属性。
  8. 继承

    • 使用extends关键字让一个类继承另一个类。
    • 子类可以访问父类的publicprotected成员。
  9. 多态

    • 允许一个引用变量在不同情况下指向不同类型的对象。
    • 通过方法重写(使用@Override注解)实现。
  10. 抽象类和接口

    • 抽象类不能被实例化,可以包含抽象方法和具体方法。
    • 接口是完全抽象的类,只能包含抽象方法(从Java 8开始,接口也可以有默认方法和静态方法)。

案例代码

以下是一个简单的Java程序,演示了上述知识点:

// 定义一个抽象类
abstract class Animal {// 抽象方法public abstract void makeSound();// 具体方法public void move() {System.out.println("The animal moves.");}
}// 定义一个接口
interface Swimmer {void swim();
}// 定义一个具体类,继承抽象类并实现接口
class Dog extends Animal implements Swimmer {// 成员变量private String name;private int age;// 构造方法public Dog(String name, int age) {this.name = name;this.age = age;}// 重写抽象类中的抽象方法@Overridepublic void makeSound() {System.out.println("The dog barks.");}// 实现接口中的方法@Overridepublic void swim() {System.out.println("The dog is swimming.");}// 自定义方法public void displayInfo() {System.out.println("Dog name: " + name + ", Age: " + age);}// Getter和Setter方法public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}
}
public class Main {public static void main(String[] args) {// 创建Dog对象Dog myDog = new Dog("Buddy", 5);// 访问成员变量和方法myDog.displayInfo();myDog.makeSound();myDog.move();myDog.swim();// 使用setter方法修改成员变量myDog.setAge(6);// 使用getter方法获取成员变量System.out.println("Dog's new age: " + myDog.getAge());}
}

解释

  1. 抽象类Animal:定义了一个抽象方法makeSound()和一个具体方法move()
  2. 接口Swimmer:定义了一个抽象方法swim()
  3. 具体类Dog
    • 继承Animal类,因此必须实现makeSound()方法。
    • 实现Swimmer接口,因此必须实现swim()方法。
    • 定义了成员变量nameage,以及相应的构造方法、getter和setter方法。
    • 定义了一个自定义方法displayInfo()来显示狗的信息。
  4. Main:包含main方法,用于创建Dog对象并调用其方法。

通过这个程序,你可以看到如何定义类、创建对象、访问成员变量和方法、实现继承和多态、以及使用抽象类和接口。

当然可以,以下是一些具体的Java对象和类的案例代码,涵盖了不同的应用场景:

案例一:地址类(Address)

这个案例定义了一个Address类,用于表示地址信息,包括国家、省份、城市、街道和邮编。

class Address {private String country;private String province;private String city;private String street;private String zipcode;// 默认构造方法public Address() {}// 带参数的构造方法public Address(String country, String province, String city, String street, String zipcode) {this.country = country;this.province = province;this.city = city;this.street = street;this.zipcode = zipcode;}// 获取完整地址信息的方法public String getInfo() {return "国家:" + this.country + "、省份:" + this.province + "、城市:" + this.city + "、街道:" + this.street + "、邮编:" + this.zipcode;}// Getter和Setter方法(省略)
}public class AddressDemo {public static void main(String[] args) {Address address = new Address("中国", "北京市", "海淀区", "中关村大街", "100080");System.out.println(address.getInfo());}
}

案例二:员工类(Employee)

这个案例定义了一个Employee类,用于表示员工信息,包括编号、姓名、基本薪水和薪水增长率。

class Employee {private long empno;private String empname;private double salary;private double rate;// 默认构造方法public Employee() {}// 带参数的构造方法public Employee(long empno, String empname, double salary, double rate) {this.empno = empno;this.empname = empname;this.salary = salary;this.rate = rate;}// 计算薪水增长额的方法public double salaryIncValue() {return this.salary * this.rate;}// 计算工资总额的方法public double salaryIncResult() {this.salary = this.salary * (1 + this.rate);return this.salary;}// 获取员工信息的方法public String getInfo() {return "员工编号:" + this.empno + "、员工姓名:" + this.empname + "、基本工资:" + this.salary + "、工资增长率:" + this.rate;}// Getter和Setter方法(省略)
}public class EmployeeDemo {public static void main(String[] args) {Employee employee = new Employee(9527L, "张三", 8000.0, 0.1);System.out.println(employee.getInfo());System.out.println("工资增长额度:" + employee.salaryIncValue());System.out.println("上调后工资额度:" + employee.salaryIncResult());}
}

案例三:抽象类和接口的应用

这个案例展示了如何使用抽象类和接口来设计更灵活的类结构。

// 定义一个抽象类
abstract class Shape {// 抽象方法public abstract double area();
}// 定义一个接口
interface Drawable {void draw();
}// 具体类,继承抽象类并实现接口
class Circle extends Shape implements Drawable {private double radius;public Circle(double radius) {this.radius = radius;}// 实现抽象类中的抽象方法@Overridepublic double area() {return Math.PI * radius * radius;}// 实现接口中的方法@Overridepublic void draw() {System.out.println("Drawing a circle with radius " + radius);}
}public class ShapeDemo {public static void main(String[] args) {Circle circle = new Circle(5.0);System.out.println("Area of the circle: " + circle.area());circle.draw();}
}

案例四:多态性的应用

这个案例展示了Java中的多态性,即同一个引用类型可以指向不同类型的对象。

class Animal {void makeSound() {System.out.println("Some generic animal sound");}
}class Dog extends Animal {@Overridevoid makeSound() {System.out.println("Bark");}
}class Cat extends Animal {@Overridevoid makeSound() {System.out.println("Meow");}
}public class PolymorphismDemo {public static void main(String[] args) {Animal myDog = new Dog(); // 多态:Animal类型的引用指向Dog对象Animal myCat = new Cat(); // 多态:Animal类型的引用指向Cat对象myDog.makeSound(); // 输出:BarkmyCat.makeSound(); // 输出:Meow}
}

这些案例涵盖了Java中类和对象的基本用法,包括类的定义、构造方法、方法、封装、继承、多态、抽象类和接口等关键概念。通过这些案例,你可以更好地理解Java面向对象编程的精髓。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/465110.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算并联电阻的阻值

计算并联电阻的阻值 C语言代码C代码Java代码Python代码 💐The Begin💐点点关注,收藏不迷路💐 对于阻值为r1和r2的电阻,其并联电阻阻值公式计算如下: R1/(1/r11/r2) 输入 两个电阻阻抗大小,浮…

创建线程时传递参数给线程

在C中,可以使用 std::thread 来创建和管理线程,同时可以通过几种方式将参数传递给线程函数。这些方法包括使用值传递、引用传递和指针传递。下面将对这些方法进行详细讲解并给出相应的代码示例。 1. 值传递参数 当你创建线程并希望传递参数时&#xff…

AAA 数据库事务隔离级别及死锁

目录 一、事务的四大特性(ACID) 1. 原子性(atomicity): 2. 一致性(consistency): 3. 隔离性(isolation): 4. 持久性(durability): 二、死锁的产生及解决方法 三、事务的四种隔离级别 0 .封锁协议 …

数字后端零基础入门系列 | Innovus零基础LAB学习Day9

Module 16 Wire Editing 这个章节的学习目标是学习如何在innovus中手工画线,切断一根线,换孔,更改一条net shape的layer和width等等。这个技能是每个数字IC后端工程师必须具备的。因为项目后期都需要这些技能来修复DRC和做一些手工custom走线…

前后端交互通用排序策略

目录 排序场景 排序实现思路 1. 静态代码排序实现 2.数据库驱动排序实现 3. 基于Java反射的动态排序实现 通用排序工具 SortListUtil 结语 排序场景 在面向前端数据展示的应用场景中,我们旨在实现一个更加灵活的排序机制,该机制能够支持对从后端传递…

前端入门一之CSS知识详解

前言 CSS是前端三件套之一,在MarkDown中也完美兼容这些语法;这篇文章是本人大一学习前端的笔记;欢迎点赞 收藏 关注,本人将会持续更新。 文章目录 Emmet语法:CSS基本语法:css语法结构只有3种&#xff1a…

leetcode | 88. 合并两个有序数组

题目描述 88. 合并两个有序数组 分析 题目不允许更改nums1的长度,要求原地更改。 题目其实不难,如果记住可以从后往前合并的解法,但是正向遍历的问题是什么呢? ——元素覆盖。那为什么负向遍历就不会有这个问题呢?…

跳蚤市场之商品发布功能

一 商品类别和小类的联动 以下是一个示例代码&#xff0c;展示了如何实现商品类别中大类和小类的联动。 商品大类选择框、小类选择框 的设计 html部分 <form id"category-form"><label for"major-category">大类&#xff1a;</label&g…

OpenAI 发布了新的事实性基准——SimpleQA

SimpleQA 简介 名为 SimpleQA 的事实性基准&#xff0c;用于衡量语言模型回答简短的事实性问题的能力。 人工智能领域的一个悬而未决的问题是如何训练模型&#xff0c;使其产生符合事实的回答。 目前的语言模型有时会产生错误的输出或没有证据证明的答案&#xff0c;这个问题…

Android camera2

一、序言 为了对阶段性的知识积累、方便以后调查问题&#xff0c;特做此文档&#xff01; 将以camera app 使用camera2 api进行分析。 (1)、打开相机 openCamera (2)、创建会话 createCaptureSession (3)、开始预览 setRepeatingRequest (4)、停止预览 stopRepeating (5)、关闭…

Javascript属性遮蔽问题

先了解一下Object.defineProperty()方法 Object.defineProperty() 静态方法会直接在一个对象上定义一个新属性&#xff0c;或修改其现有属性&#xff0c;并返回此对象。 //obj&#xff1a;要定义的对象 //prop&#xff1a;一个字符串或 Symbol&#xff0c;指定了要定义或修改…

vue3项目history模式部署404处理,使用 historyApiFallback 中间件支持单页面应用路由

vue3项目history模式部署404处理&#xff0c;使用 historyApiFallback 中间件支持单页面应用路由 在现代的 web 开发中&#xff0c;单页面应用&#xff08;SPA&#xff09;变得越来越流行。这类应用通常依赖于客户端路由来提供流畅的用户体验&#xff0c;但在服务器端&#xf…

【vim文本编辑器gcc编译器gdb调试器】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、vimvim安装vim常用快捷键vim使用vimtutor zh文档 二、gcc编译器安装gcc工具编译源代码 三、gdb调试器gdb安装gdb常用指令gdb简单上手使用gdb的单步调试功能 总结…

企业数字化转型的架构治理策略:核心问题、深度分析与优化路径

在当今的商业环境中&#xff0c;企业数字化转型已成为实现可持续发展、增强竞争力的战略选择。企业架构治理&#xff08;Enterprise Architecture Governance Capability, EAGC&#xff09;在数字化转型中扮演着保障架构一致性、提升变革效能的关键角色。本指南深入解析了如何通…

基于springboot+vue实现的农产品物流系统

基于springbootvue实现的农产品物流系统 &#xff08;源码L文ppt&#xff09;4-107 摘 要 随着现代信息技术的迅猛发展&#xff0c;农产品物流系统应运而生&#xff0c;成为连接生产者与消费者的重要桥梁。该系统采用java语言&#xff0c; Spring Boot框架&#xff0c;结合My…

基于uniapp和java的电动车智能充电系统软件平台的设计

文章目录 项目介绍具体实现截图技术介绍mvc设计模式小程序框架以及目录结构介绍错误处理和异常处理java类核心代码部分展示详细视频演示源码获取 项目介绍 对电动车智能充电系统进行设计和开发。通过使用本系统可有效地减少运营成本&#xff0c;提高管理效率。 根据近年来社会…

Jmeter命令监控CPU等指标

JMeter 命令行执行脚本得到的报告中&#xff0c;是没有CPU、内存使用率等监控数据的&#xff0c;但是可以使用JMeter插件帮忙。 一、下载jmeter-plugins-manager.jar 下载后将文件放到jmeter安装包lib/ext目录下。打开Jmeter》菜单栏》选项》Plugins Manager 二、安装PerfMon…

ubuntu20.04 加固方案-检查是否设置登录超时

一、编辑/etc/profile配置文件 打开终端。 使用文本编辑器&#xff08;如vim&#xff09;编辑/etc/profile 文件。 vi /etc/profile 二、添加配置参数 在打开的配置文件中&#xff0c;如图位置添加如下参数&#xff1a; TMOUT1800 export TMOUT三、保存并退出 在vim编辑器…

HarmonyOS使用arkTS拉起指定第三方应用程序

HarmonyOS使用arkTS拉起指定第三方应用程序 前言代码及说明bundleName获取abilityName获取 前言 本篇只说采用startAbility方式拉起第三方应用&#xff0c;需要用到两个必备的参数bundleName&#xff0c;abilityName&#xff0c;本篇就介绍如何获取参数… 代码及说明 bundle…