示例代码:
向方法传递对象:
- 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();
- }
- }