Java Cohesion 被定义为用于执行专门的任务(单个任务),而不是使用单个 java 类执行多个任务。如果一个类的创建具有高内聚力,那么据说它是针对一个特定目的,而不是一次执行不同的任务。
广告 该类别中的热门课程 JAVA 掌握 - 专业化 | 78 课程系列 | 15 次模拟测试开始您的免费软件开发课程
网络开发、编程语言、软件测试及其他
实时示例:假设我们必须找出 n 个数字的阶乘并将输出显示给用户。如果我们采用单个类来查找阶乘并显示输出。如果客户端总是想要更改不同样式的显示输出,那么我们必须一次又一次地更改同一个类,而不修改阶乘逻辑。这在开发中是不好的做法,因此为阶乘逻辑使用一个类,为显示输出逻辑使用另一个类,那么现在我们只能始终更改显示逻辑类。据说是高凝聚力的练习。
凝聚力的类型
有 2 种类型的内聚力
1.低内聚力
当类被设计为执行许多不同的任务而不是专注于任何特定任务时,该类被称为“低内聚类”。这种做法是不好的编程设计方法。小改动就需要大量修改。
语法:
class Operations { //code for multiplication //code for division //code for addition //code for subtraction . . . }
说明:所有任务都在同一个类中执行,因此如果发生任何修改,我们几乎都会更改整个代码。
2.高内聚力
当类被设计为执行任何特定任务时,该类被称为“高内聚类”。这种做法是很好的编程设计方法。它易于维护且不易修改
语法:
class Multiplication { //code } class Division { //code } class Addition { //code } class Multiplication { //code }
说明:易于维护且不易修改,因为每个类都有自己的特定任务。
Java 中内聚力如何工作?
内聚的工作原理是为每个类提供特定的逻辑,提供更好的可维护性和更好的可读性。
语法:
class Task { //logic for task } class Display { //display task here }
Java 中内聚的示例
以下是下面提到的示例:
示例 #1 – 乘法内聚
代码:
package com.cohesion; import java.util.Scanner; //Multiplication logic class class Multiplication { // method for providing logic for multiplication of 2 numbers public static double getMultiplication(double x, double y) { // return the multiplcation output return x * y; } } // Output display class public class MultiplicationCohesion { public static void main(String args[]) { // scanner class for ask user input Scanner scanner = new Scanner(System.in); System.out.println("Enter any two numbers=>"); // ask the user 2 numbers double firstNumber = scanner.nextDouble(); double secondNumber = scanner.nextDouble(); // display the multiplication output System.out.println("Muliplication of " + firstNumber + " and " + secondNumber + " is " + Multiplication.getMultiplication(firstNumber, secondNumber)); scanner.close(); } }
输出:
示例 #2 – 阶乘内聚
代码:
package com.cohesion; import java.util.Scanner; //class for factorial class Factorial { // method for factorial logic public static int getFactorial(int inputNumber) { int factorial = 1; // calculating the factorial for (int temp = 1; temp "); // ask the user 1 number int number = scanner.nextInt(); // display the factorial output System.out.println("Factorial of " + number + " is " + Factorial.getFactorial(number)); scanner.close(); } }
输出:
示例 #3 – 完美数内聚
代码:
包 com.cohesion;
import java.util.Scanner; //class for perfect number class PerfectNumber { static int sum = 0; // method for perfect number logic public static int getPerfectNumber(int inputNumber) { for (int i = 1; i "); // ask the user 1 number int number = scanner.nextInt(); int output = PerfectNumber.getPerfectNumber(number); // checking sum and entered number if (output == number) { // display the perfect number output System.out.println(number + " is a Perfect Number"); } else { // display the perfect number output System.out.println(number + " is not a Perfect Number"); } scanner.close(); } }
输出:
示例 #4 – 回文数内聚
代码:
package com.cohesion; import java.util.Scanner; //class for polindrome number class Polindrome { static int sum = 0; // method for polindrome number logic public static int getPolindromeNumber(int inputNumber) { int r, sum = 0, temp; temp = inputNumber; while (inputNumber > 0) { r = inputNumber % 10; // getting remainder sum = (sum * 10) + r; inputNumber = inputNumber / 10; } return sum; } } public class PolindromeCohesion { public static void main(String args[]) { // scanner class for ask user input Scanner scanner = new Scanner(System.in); System.out.println("Enter any number=>"); // ask the user 1 number int number = scanner.nextInt(); int output = Polindrome.getPolindromeNumber(number); // checking sum and entered number if (output == number) { // display the palindrome output System.out.println(number + " is a Polindrome Number"); } else { // display the palindrome output System.out.println(number + " is not a Polindrome Number"); } scanner.close(); } }
输出:
结论
Java Cohesion 用于通过执行每个类的任何特定任务来实现更好的可维护性和更少的可修改代码。这就是所谓的高内聚设计编程。实时应用高内聚者优先。
以上是Java 中的内聚力的详细内容。更多信息请关注PHP中文网其他相关文章!

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于结构化数据处理开源库SPL的相关问题,下面就一起来看一下java下理想的结构化数据处理类库,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于PriorityQueue优先级队列的相关知识,Java集合框架中提供了PriorityQueue和PriorityBlockingQueue两种类型的优先级队列,PriorityQueue是线程不安全的,PriorityBlockingQueue是线程安全的,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于java锁的相关问题,包括了独占锁、悲观锁、乐观锁、共享锁等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于多线程的相关问题,包括了线程安装、线程加锁与线程不安全的原因、线程安全的标准类等等内容,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于枚举的相关问题,包括了枚举的基本操作、集合类对枚举的支持等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Java的相关知识,其中主要介绍了关于关键字中this和super的相关问题,以及他们的一些区别,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于平衡二叉树(AVL树)的相关知识,AVL树本质上是带了平衡功能的二叉查找树,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Java的相关知识,其中主要整理了Stream流的概念和使用的相关问题,包括了Stream流的概念、Stream流的获取、Stream流的常用方法等等内容,下面一起来看一下,希望对大家有帮助。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

禅工作室 13.0.1
功能强大的PHP集成开发环境

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

Dreamweaver CS6
视觉化网页开发工具

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具