Java中的类--方法--变量等

来源:互联网 发布:nginx反向代理socket 编辑:程序博客网 时间:2024/05/17 04:06

1.类:
要想使用一个类的成员,就必须创建该类的对象
创建对象的格式:
类名 对象名 = new 类名();
如何使用成员呢?
成员变量:
对象名.变量;
成员方法:
对象名.方法名(…);

2.方法:
做到两个明确:
返回值
结果的数据类型
参数
参数的个数,以及类型
*返回结果的数据类型,参数的个数以及类型,重要的事情说两遍

方法的注意事项:
A:方法不调用不执行
B:方法与方法是平级关系,不能嵌套定义
C:方法定义的时候参数之间用逗号隔开
D:方法调用的时候不用在传递数据类型
E:如果方法有明确的返回值,一定要有return带回一个值

格式:
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2…) {
方法体;
return 返回值;
}
其中返回值类型里,没有返回值就写void,并且方法体里面也不用return了。

方法调用的时候一定要写()

方法重载:
定义:在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可

方法重载特点:
与返回值类型无关,只看方法名和参数列表
在调用时,虚拟机通过参数列表的不同来区分同名方法

自己写的作业里面带有的方法重载:public String Mosaic(boolean[] bl,int[] order)public String Mosaic(int[] arr,int[] order)public String Mosaic(byte[] bt,int[] order)等...这样的话当输入的第一个数组是哪一种基本类型的也能调用我的Mosaic方法了

3.变量
成员变量和局部变量的区别?
A:在类中的位置不同
成员变量 类中方法外
局部变量 方法内或者方法声明上
B:在内存中的位置不同
成员变量 堆内存
局部变量 栈内存
C:生命周期不同
成员变量 随着对象的存在而存在,随着对象的消失而消失
局部变量 随着方法的调用而存在,随着方法的调用完毕而消失
D:初始化值
成员变量 有默认初始化值
局部变量 没有默认初始化值
局部变量定义在方法里的,所以跟方法的调用密切相关
这里写图片描述
其中的方法在调用的时候才会进入栈内存,局部变量跟着进入栈内存

形式参数问题
数据类型:
基本类型:4类8种。byte,short,int,long,float,double,char,boolean
基本类型实际参数传递的时候传递的是这个基本类型的具体的值
引用类型:类,接口,数组
引用类型进行参数传递的时候,传递的是该引用类型的(实例对象)说白了就是这个对象的地址值

一般来说类与方法总结了下面几种写法

第一种示例public class StringDeemo {    private static int maxNum;    private static char maxElement;    private static char minElement;    private static int minNum;    public static void method(String s){    }    public int getMaxNum(String s){    }    public int getMinNum(String s){    }    public String getMaxElement(String s){    }    public String getMinElement(String s){    }    public class Test {    public static void main(String[] args) {        StringDeemo str = new StringDeemo();    }}
第二种示例public class StringSymmetry {    public static void main(String[] args) {        System.out.println(isSymmetry(str));    }public static boolean isSymmetry(String str){        boolean result = true;        return result;    }}

第一种class Test也可以存放在另一个文件里

4.匿名对象:就是没有名字的对象
是对象一种简写形式。
应用场景:
A:调用方法(对象调用方法仅仅一次的时候)
B:作为实际参数传递

class Student{    public void show(){        System.out.println("student的show方法");    }}class StudentDemo{    public void method(Student s){//需要的实际参数一定是Student类的对象的的地址值        s.show();    }}public class StudentTest {    public static void main(String[] args) {/*      //我现在需要调用StudentDemo中的method()方法        StudentDemo sd = new StudentDemo();        //需要的实际参数一定是Student类的对象的的地址值        Student s = new Student();        sd.method(s);*/             System.out.println("--------------------------");        //想调用我现在需要调用StudentDemo中的method()方法        //使用匿名对象调用方法,并传递参数        new StudentDemo().method(new Student());        }}
0 0
原创粉丝点击