首页 > 编程语言 >简单再谈谈java中的类和接口 20240609

简单再谈谈java中的类和接口 20240609

时间:2024-06-09 15:32:39浏览次数:28  
标签:20240609 java double 接口 radius Circle public

当我们谈论Java中的类和接口时,我们实际上是在讨论面向对象编程(Object-Oriented Programming,OOP)的核心概念。OOP 是一种编程范式,它将程序视为一组对象的集合,这些对象可以相互交互,通过消息传递来处理数据。让我们从头开始慢慢介绍。

类(Class)
在Java中,一个类是对象的蓝图或模板。它描述了对象的状态(属性)和行为(方法)。类通常包含以下内容:

属性(Fields):也称为成员变量,表示对象的状态或特征。例如,在一个叫做Circle的类中,radius可以是一个属性,用于表示圆的半径。

方法(Methods):定义了对象可以执行的操作。这些操作可以访问和修改对象的状态。例如,在Circle类中,calculateArea()和calculatePerimeter()可以是方法,用于计算圆的面积和周长。

构造函数(Constructor):用于创建对象并对其进行初始化。构造函数的名称必须与类名相同,它可以有参数,用于接收创建对象时传递的初始值。

访问修饰符(Access Modifiers):用于限定类的属性和方法的访问权限。常见的访问修饰符有public、protected、private和默认(没有任何修饰符)。

下面是一个简单的Java类的示例:

java
public class Circle {
// 属性
private double radius;

// 构造函数
public Circle(double radius) {
    this.radius = radius;
}

// 方法
public double calculateArea() {
    return Math.PI * radius * radius;
}

public double calculatePerimeter() {
    return 2 * Math.PI * radius;
}

}
对象(Object)
对象是类的实例。当我们实例化一个类时,我们创建了一个具体的对象,该对象具有类中定义的属性和方法。例如,通过Circle类创建一个具体的圆对象:

java
Circle myCircle = new Circle(5.0);
在这个例子中,myCircle就是Circle类的一个对象。我们可以通过该对象访问其属性和方法。

java
double area = myCircle.calculateArea();
double perimeter = myCircle.calculatePerimeter();
接口(Interface)
接口是一种抽象数据类型,它定义了一组方法的规范,但并不提供方法的实现。接口可以看作是一种契约,实现了接口的类必须提供接口中定义的所有方法。接口中的方法默认是公共的(public)且抽象的(abstract),因此可以省略这些修饰符。

下面是一个简单的接口示例:

java
public interface GeometricObject {
double getPerimeter();
double getArea();
}
实现(Implementation)
当一个类实现了一个接口时,它必须提供接口中定义的所有方法的实现。一个类可以实现多个接口,这种多接口实现提供了Java的灵活性。

下面是一个实现接口的类的示例:

java
public class Circle implements GeometricObject {
private double radius;

public Circle(double radius) {
    this.radius = radius;
}

@Override
public double getPerimeter() {
    return 2 * Math.PI * radius;
}

@Override
public double getArea() {
    return Math.PI * radius * radius;
}

}
在这个例子中,Circle类实现了GeometricObject接口,并提供了getPerimeter()和getArea()方法的具体实现。

继承(Inheritance)
继承是一种重要的OOP概念,它允许一个类(子类)继承另一个类(父类)的属性和方法。子类可以使用父类中的属性和方法,也可以扩展或修改它们。Java中支持单继承,即一个子类只能有一个直接的父类。

下面是一个简单的继承示例:

java
public class ResizableCircle extends Circle {
// 子类的额外属性和方法
}
在这个例子中,ResizableCircle类继承了Circle类的所有属性和方法,并且可以添加额外的属性和方法。

标签:20240609,java,double,接口,radius,Circle,public
From: https://www.cnblogs.com/landboat/p/18239597

相关文章

  • 【JAVASE】面向对象编程综合案例--------模仿电影信息系统
    需求:(1)展示系统中的全部电影(每部电影展示:名称、价格)(2)允许用户根据电影编号(ID)查询出某个电影的详细信息。目标:使用所学的面向对象编程实现以上两个需求。代码:Movie.javaMovieOperator.javaTest.java代码运行;......
  • Java虚拟机,并发与并行的并存
    ZYCEONGAO:场景:尽管多核处理器提供了并行执行的物理条件,但并非所有场景都能够或应该完全并行化。 线程数超过核心数:当应用程序创建的线程数量超过了处理器的核心数,操作系统会采用类似单核处理器上的时间片轮转策略,轮流将线程分配到各个核心上执行。这意味着,即使在多核环......
  • L44---506.相对名次(java)--排序
    1.题目描述给你一个长度为n的整数数组score,其中score[i]是第i位运动员在比赛中的得分。所有得分都互不相同。运动员将根据得分决定名次,其中名次第1的运动员得分最高,名次第2的运动员得分第2高,依此类推。运动员的名次决定了他们的获奖情况:名次第1的运......
  • SpringBoot3集成Knife4j生成接口文档
    导入依赖<dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId><version>4.4.0</version></dependency>注意:SpringBoot......
  • 一起学习javascript-进阶版函数(1)
    <script>  //举个例子 functionsum(x){    returnx+1;  }    functionadd(a,b,f){    varc=f(a)+f(b)    console.log("c的值为:"+c);  }  //给add函数传参  add(3,6,sum);// 这里的f相当于为//......
  • 一起学习javascript-函数(2)
    <script>  //变量作用域与解构赋值  functionf1(y){  varx=1;  x=x+2;  console.log(x+y);  console.log(x);  //因为变量x在函数f1中申明,在这里属于局部变量,所以x只能在f1中访问,f1执行完,x就销毁了}f1(2);//为了更直观一点,调用......
  • Java数据类型详解
    Java数据类型详解Java作为一种静态类型语言,在编译时就需要确定变量的数据类型。Java的数据类型可以分为两大类:基本数据类型和引用数据类型。本文将详细介绍这些数据类型,并通过代码示例展示如何使用它们。一、基本数据类型Java中的基本数据类型包括四类八种:整数类型、浮点......
  • Java重要知识总结(一)
    Java语言的特点简单易学;面向对象(封装,继承,多态);平台无关性;支持多线程;可靠性;安全性;高效性编译与解释并存JVM-JDK-JRE区别JVM(JavaVirtualMachine),Java虚拟机是运行Java字节码的虚拟机。JDK(JavaDevelopmentKit),它是功能齐全的JavaSDK,是提供给开发者使用,能够创建和编译Jav......
  • java: 错误: 无效的源发行版:17解决方法、java: 无法访问org.springframework.web.bind
    可能的问题与解决方法java:错误:无效的源发行版:17(18)解决方法遇到这种问题大概率是版本以及配置出现问题,可以试试看按下面的步骤排除检查先检查自己的Java版本去到项目结构看Java配置是否正确这里以我的Java1.8举例主要是修改SDK为正确对应检查依赖项是否正确(i......
  • 基于协同过滤的在线通用旅游平台网站java ssm mysql|全套源码+文章lw+毕业设计+课程设
    基于协同过滤的在线通用旅游平台网站javassmmysql|全套源码+文章lw+毕业设计+课程设计+数据库+ppt摘要近几年来,计算机网络的发展得到了飞速的提升,由此展开的一系列行业大洗牌也由此开始。早些年只是人们只是对于计算机和互联网有了些基础的认识,现在它正在悄悄的改变着我......