Java基础:方法和类详解
示例代码:
向方法传递对象:
- class Block{ //类Block
- int a,b,c; //int类型变量
- int volume;
- Block(int x,int y,int z){ //带三个参数的构造
- a = x; //给变量赋值
- b = y;
- c = z;
- volume = a*b*c;
- }
- boolean sameBlock(Block ob){ //向方法传递对象
- if(ob.a==a&ob.b==b&ob.c==c){
- return true;
- }else{
- return false;
- }
- }
- boolean sameVolume(Block ob){ //向方法传递对象
- if(ob.volume==volume){
- return true;
- }else{
- return false;
- }
- };
- }
------------------------------------------------------------------------------------------------------
方法返回对象:
- class ErrorMsg{
- String[] msgs={"1 error","2 error","3 error","4 error"};
- String getErrorMsg(int i){ //返回String类型的对象
- if(i>=0&i<msgs.length){
- return msgs[i];
- }else{
- return "Invalid Error Code";
- }
- }
- }
--------------------------------------------------------------------------------------------------------
方法重载:方法名相同,参数返回类型,参数个数不相同
- class Overload{
- void Oload(){
- System.out.println("没有参数");
- }
- void Oload(int a){
- System.out.println("一个参数:"+a);
- }
- int Oload(int a,int b){
- System.out.println("两个参数:"+a+" "+b);
- return a+b;
- }
- double Oload(double a,double b){
- System.out.println("两个double参数:"+a+" "+b);
- return a+b;
- }
- }
--------------------------------------------------------------------------------------
重载构造函数:
- class Queue{
- private char[] q;
- private int putd,getd;
- Queue(int size){ //Queue(int size)
- q = new char[size];
- putd=getd=0;
- }
- Queue(Queue ob){ //Queue(Queue ob)
- putd = ob.putd;
- getd = ob.getd;
- q = new char[ob.q.length];
- for(int i=getd;i < putd;i++){
- q[i] = ob.q[i];
- }
- }
- Queue(char[] a){ //Queue(char[] a)
- putd = 0;
- getd = 0;
- q = new char[a.length];
- for(int i=0;i < a.length;i++){
- put(a[i]);
- }
- }
- }
-----------------------------------------------------------------------------------------------------
递归方法:
- class Factorial{
- int factR(int n){ //递归方法求阶乘
- int resualt;
- if(n==1) return 1;
- resualt = factR(n - 1)*n;
- return resualt;
- }
- int factI(int n){ //非递归方法求阶乘
- int t,resualt;
- resualt = 1;
- for(t=1;t <= n;t++){
- resualt *=t;
- }
- return resualt;
- }
- }
--------------------------------------------------------------------------------------------------------------------
内部类:嵌套在类的内部,可以访问外层类的所有变量和方法
- class Outter{ //外层类
- int[] nums; //数组变量
- Outter(int[] n){ //构造方法
- nums = n;
- }
- void analyze(){ //普通方法,创建内部类对象,调用内部类方法
- Inner in = new Inner();
- System.out.println(in.min());
- System.out.println(in.max());
- System.out.println(in.ave());
- }
- class Inner{ //内部类,封装了三个方法min(), max(), ave()
- int min(){
- int m = nums[0]; //调用外部类的变量
- for(int i=0;i < nums.length;i++){
- if(nums[i] < m) m = nums[i];
- }
- return m;
- }
- int max(){
- int m = nums[0];
- for(int i=0;i < nums.length;i++){
- if(nums[i] > m) m = nums[i];
- }
- return m;
- }
- int ave(){
- int a = 0;
- for(int i=0;i < nums.length;i++){
- a += nums[i];
- }
- return a/(nums.length);
- }
- }
- }
- class NestedClassDemo{
- public static void main(String args[]){
- int[] x = {3,2,1,5,6,9,7,8,};
- Outter ob = new Outter(x);
- ob.analyze();
- }
- }
Java基础:方法和类详解相关推荐
- 【Java基础】HashMap原理详解
[Java基础]HashMap原理详解 HashMap的实现 1. 数组 2.线性链表 3.红黑树 3.1概述 3.2性质 4.HashMap扩容死锁 5. BATJ一线大厂技术栈 HashMap的实 ...
- Java中的Runtime类详解
Java中的Runtime类详解 1.类注释 /**Every Java application has a single instance of class Runtime that allows ...
- java基础与案例开发详解 pdf下载_Java基础与案例开发详解(张孝祥) pdf_IT教程网...
资源名称:Java基础与案例开发详解(张孝祥) pdf 第1.2和3章介绍Java环境的安装配置,Java程序的开发过程和Java语言的基础语法. 第4章介绍数组和常用算法的相关知识. 第5章和6章介 ...
- java线程池ThreadPoolExecutor类详解
线程池有哪些状态 1. RUNNING: 接收新的任务,且执行等待队列中的任务 Accept new tasks and process queued tasks 2. SHUTDOWN: 不接收 ...
- stringtokenizer java_基于Java中的StringTokenizer类详解(推荐)
StringTokenizer是字符串分隔解析类型,属于:Java.util包. 1.StringTokenizer的构造函数 StringTokenizer(String str):构造一个用来解析 ...
- java并发编程Future类详解
作用和举例 future类的作用就是为了调用其他线程完成好后的结果,再返回到当前线程中,如上图举例: 小王自己是主线程,叫外卖等于使用future类,叫好外卖后小王就接着干自己的事去了,当外卖到了的时 ...
- java object 详解_Java基础之Object类详解
类Object是类层次结构的根类.每个类都直接或者间接地继承Object类.所有对象(包括数组)都实现这个类的方法.Object类中的构造方法只有一个,并且是无参构造方法,这说明每个类中默认的无参构造 ...
- Java双刃剑之Unsafe类详解
前一段时间在研究juc源码的时候,发现在很多工具类中都调用了一个Unsafe类中的方法,出于好奇就想要研究一下这个类到底有什么作用,于是先查阅了一些资料,一查不要紧,很多资料中对Unsafe的态度都是 ...
- 【JDK源码】java.io包常用类详解
看完java.io的JDK源码,在网上发现一篇关于java.io中的类使用的文章总结的很全面,看完之后在原文的基础上加了一些自己的总结如下构成了本篇文章.原文地址 一.Java Io流 1. Java ...
- 【JDK源码】java.lang包常用类详解
接下来的几天开始JDK源码的学习和总结,之前看<java编程思想>的时候看到java的基础知识有很多,其中支撑着这些基础的基础中的基础当属JDK.JDK的基础代码里面又分了很多基础的模块, ...
最新文章
- 这12大管理原则,经营者必知
- 文件流下载到本地 - 待完成
- @responseBody java_java-如何使用@ResponseBody从Spring Controller返回JSON数据
- tableau必知必会之如何在Tableau server中实现工作薄的自动刷新
- 全球及中国便携式卧式空压机行业前景动态与投资趋势分析报告2022版
- 线程池开门营业招聘开发人员的一天
- 《追风筝的人》卡勒德·胡赛尼著小说成长的故事
- Linux多线程同步
- 使用python批量创建文件夹or文件
- 车牌限行C语言雾霾指数,算法设计与程序实现判断车牌的单双号(背景知识)为了保障空气质量,减少雾霾,某市决定当空气污染严重时,实行汽车单双号限行,违反规定的车辆将予以处罚。如何让高清摄像-组卷网...
- 计算机一级证件照尺寸,照相馆不会告诉你的哪些事:常用证件照尺寸汇总
- (2)msp430f5529 官方例程
- 今日头条、抖音创始人张一鸣
- TP5 生成微信小程序海报图
- [UE4][Blueprint]虚幻4实现照相机拍照功能
- 51精密线路板年终活动,爆款降临
- 阿里巴巴开源力作(二)--分布式流量卫兵Sentinel简介及控制台安装
- 信管师培训之第十一节课作业(法律法规+标准规范+职业道德)
- SQL中DDL语句(数据表定义语言)
- MIT6.830-2022-lab4实验思路详细讲解