当前位置: 首页 > news >正文

3.28总结

1.java学习记录

1.方法的重载

重载换而言之其实就是函数名不变,但是其中的参数需要改变,可以三个方面改变(参数类型,参数顺序,参数个数这三个方面入手,这样可以运用的)

但是:注意访问修饰符或返回值设置不同,而参数设置相同时,无法构成方法的重载。

public class Test {public Test(){System.out.println("无参构造方法");}public Test(int a){System.out.println("单参构造方法 a:"+a);}public Test(int a, String b){System.out.println("无参构造方法 a:"+a +"b:"+b);}public static void main(String[] args) {new Test();new Test(1);new Test(1,"1");}
}

2.封装

4.1 什么是封装
        当我们需要安全地访问对象时,例如限制给对象赋值的范围(避免数据类型的不同或者数据范围超出预计),我们就需要使用封装技术。
        封装就是将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法(如set或者get)来实现对隐藏信息的操作和访问。

方法封装的主要优点包括:

代码抽象: 将复杂的操作和算法封装在方法中,使得调用者只需要关注方法的用途,而无需关心具体的实现细节。

隐藏实现细节: 封装隐藏了方法的具体实现,从而防止外部代码直接访问或修改内部逻辑,提高了信息隐藏和安全性。

提高可读性: 使用有意义的方法名和参数,使代码更易于理解和阅读,降低了理解和维护代码的难度。

提高可维护性: 修改方法的实现只需要在方法内部进行,不影响外部调用者的代码,从而减少了代码变更的影响范围。

代码重用: 封装的方法可以在不同的地方重复使用,避免了代码的重复编写,提高了代码的重用性。

用封装的方法,计算圆的面积

class Circle {private double radius;public Circle(double r) {radius = r;}// 封装的方法,计算圆的面积public double calculateArea() {return Math.PI * radius * radius;}
}public class Main {public static void main(String[] args) {Circle circle = new Circle(5.0);// 调用封装的方法,计算圆的面积double area = circle.calculateArea();System.out.println("Circle Area: " + area);}
}

2.每日一题

最短路计数

#include<bits/stdc++.h>
using namespace std;
int n,m,cnt;
long long dis[1000006];
int vis[1000005];
int head[1000005]; 
long long ans[1000005];
struct edge
{int to;int w;int next;
}e[5000005];
struct node
{int dis,pos;bool operator <(const node &a)const{return a.dis>dis;}
};priority_queue <node> q;void addedge(int x,int y,int z)
{cnt++;e[cnt].to=y;e[cnt].w=z;e[cnt].next=head[x];head[x]=cnt;
};int main()
{cin>>n>>m;for(int i=1;i<=n;i++)dis[i]=0x3f3f3f3f;dis[1]=0;ans[1]=1;for(int i=1;i<=m;i++){int x,y;cin>>x>>y;addedge(x,y,1);addedge(y,x,1);}q.push((node){0-dis[1],1});while(!q.empty()){node tmp=q.top();q.pop();int pos=tmp.pos;int d=tmp.dis;if(vis[pos]==1)continue;vis[pos]==1;for(int i=head[pos];i!=0;i=e[i].next){if(dis[e[i].to]>dis[pos]+e[i].w){dis[e[i].to]=dis[pos]+e[i].w;ans[e[i].to]=ans[pos];q.push((node){0-dis[e[i].to],e[i].to});}else if(dis[e[i].to]==dis[pos]+e[i].w){ans[e[i].to]+=ans[pos];ans[e[i].to]%=100003;}}}for(int i=1;i<=n;i++){printf("%lld\n",ans[i]);}return 0;
}

 

http://www.lryc.cn/news/327461.html

相关文章:

  • C# 命名空间的两种定义哦写法与区别
  • Rustdesk客户端编译后固定密码不稳定时好时坏
  • 小程序利用WebService跟asp.net交互过程发现的问题并处理
  • TitanIDE与传统 IDE 比较
  • 反序列化动态调用 [NPUCTF2020]ReadlezPHP1
  • Hadoop面试重点
  • 【ONE·基础算法 || 分治·快排并归】
  • Python 从0开始 一步步基于Django创建项目(11)注册新用户
  • 银行监管报送系统介绍(十二):非居民金融账户涉税信息报送
  • 土壤有机质空间分布数据
  • Unity图集编辑器
  • 【JS笔记】JavaScript语法 《基础+重点》 知识内容,快速上手(六)
  • hbase启动错误-local host is“master:XXXX“ destination is:master
  • 基于SpringBoot的“招生管理系统”的设计与实现(源码+数据库+文档+PPT)
  • Chinese-LLaMA-Alpaca-2模型量化部署测试
  • flutter 打包成web应用后怎么通过url跳转页面
  • 【设计模式】中介者模式的应用
  • 【微服务篇】分布式事务方案以及原理详解
  • String 类的常用方法都有那些?
  • 用XMLHttpRequest发送和接收JSON数据
  • 华为云使用指南02
  • halcon目标检测标注保存
  • Python图像处理——计算机视觉中常用的图像预处理
  • 编译安装飞桨fastdeploy@FreeBSD(失败)
  • java组合总和(力扣Leetcode39)
  • ZK友好代数哈希函数安全倡议
  • VMware vSAN OSA存储策略 - 基于虚拟机的分布式对象存储
  • JUC内容概述
  • postcss安装和使用
  • macOS 13 Ventura (苹果最新系统) v13.6.6正式版