基础知识之:类,方法,构造函数,变量等的相关回顾

来源:互联网 发布:网络买大麻暗语 编辑:程序博客网 时间:2024/06/05 00:50

1.1.1定义类


[修饰符] class 类名{

构造器

方法

变量

其中:成员变量:用于定义该类或者该类的实例(就是在另一个类里面,new的实例)所包含的状态数据

eg:private int age=13;

private static String name="小明";


方法:用来定义该类或者该类的实例所实现的功能活着行为特征

//定义方法;类方法public static int deDeom(int app){    new MainActivity().deDeomq(app);      return app;}
//定义方法:实例方法public  int deDeomq(int app){    this.deDeom(app);     return app;}
//定义构造器;怎么说呢,构造器用于构造该类的实例,通过new关键字调用构造器,从而返回给类的实例public MainActivity(){    }
MainActivity mainActivity=new MainActivity();        mainActivity.deDeomq(mainActivity.appPay1);
类和方法的命名方法,一般遵循大驼峰命名发,即由多个有意义的单子组成,并且每个单词的首字母大写;对于成员变量,则是第一个单词的首字母也是小写;
方法的定义:
[修饰符]方法的返回值的类型 方法名(可选的形参列表){
//由多条可执行的语句定义,为方法的具体实现;
方法的修饰符可以由public、protected、private于static 、abstract、final结合使用,之后会陆续在文章中说明;(需注意的是:abstract和final最多只能出现一个)
 方法的返回值类型:1、可以是void 无返回值类型
2、定义的任意返回类型,int、String、Map等返回类型都要有一个有效的return返回语句,返回的数据类型与定义的返回类型一致
public  int deDeomq(int app){    return app;}
方法名常以英文动词开头;
static修饰的成员,无论是成员变量还是方法,都是属于这个类本身,不属于这个类的某一个实例;不适用static修饰的方法和变量,成为实例方法,实例变量;
静态成员不能直接访问非静态成员

public class Test {int a=10;static int b=10;//定义了一个成员方法public static void goby(){Test c=new Test();c.gotgdd();//在静态方法里直接访问非静态的方法会报错gotgdd();b=20;//在静态方法里也同样不可以直接访问非静态的变量a=10;//必须通过new 一个对象                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ,然后用对象.非静态变量或者非静态方法;c.a=10;}//定义了一个实例方法public void gotgdd(){goby();Test.goby();this.gotgdd();Test.goby();a=0;b=20;Test.goby();}//当访问权限允许的情况下,类里面定义的成员变量和成员方法都可以通过类或者类的实例来调用//static修饰的方法和成员变量,即可通过类 来调用,也可以通过实例来调用}
public class XingTest {Test test=new Test();public  void mac(){test.gotgdd();test.goby();}}
this关键字总是指向调用该方法的对象,主要根据this出现位置的不同个,this作为对象的默认的引用有两种情况
1、在构造器中引用该构造器正在初始化的对象
2、在方法中引用调用该方法的对象;
注意:没有使用static修饰的成员变量和成员方法都必须使用对象来调用;static修饰的方法里面不能使用this引用。所以静态的成员不能直接访问非静态的成员;要使用类.成员;
public void say(){System.out.print("我喜欢你");}public void sayby(){this.say();}public static void sayto(){//报错,不能在静态方法中使用this关键字;this.say();Test.sayto();Test gott=new Test();gott.say();new Test().say();}
成员变量,顾名思义,就是在类里面定义的变量;
局部变量:及时在方法里面定义的变量;
首字母小写,后面首字母大写;
下面谈谈封装,封装和继承以及多态是面向对象的三大特征,非常的重要;
封装指的是:将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象的内部信息,而是通过该类所提供的方法来实现对内部信息的操作和访问
这个大家可以想象成我们是在集成别人的sdk,智能通过官方提供的函数来操作jar包里面的方法等;
封装嘛,即把该隐藏的隐藏起来,把该暴露的暴露出来;至于private、protected、public的相关访问权限,不详述;
说几点一般遵循的几条规则:
1、类里面绝大多说的成员变量应该用private修饰,只有一些用static修饰的,类似全局变量的成员变量,才考虑会去用public修饰;
还有就是类里面有些方法之是用于辅助该类的其他方法,这些方法被叫做工具方法;这些工具方法也应该使用private修饰
2、希望暴露出来给其他的类自由调用的方法应该用public修饰(最高访问权限);所以,这个构造器就是用public修饰的,用于返回类的对象;从而就允许在其他地方创建该类的实例;
3、如果某个类主要是用作其他类的父类,该类里包含的大部分方法可能仅仅希望被其子类重新的话,应该是用protected修饰这些方法,而类用pulic修饰
构造器的重载:
跟方法类似,要求构造器的名字必须相同,多个构造器之间的参数列表必须不同;根据传入参数的不同调用相应的构造器;
java使用extends关键字来实现继承;
子类继承父类,将可以获得父类的全部成员变量和方法;但是子类不可以继承父类的构造器
方法的 重写就是:子类包含与父类同名方法;右叫做方法的覆盖;方法的覆盖要遵循几个规则,首先:方法名相同,形参列表也要相同,子类的权限要比父类的大,还有就是子类方法的返回值的类型应该比父类中方法的返回值的类型相同或者更小些;
如果需要在子类中访问父类中被覆盖的方法,可以使用super关键字,或者父类类名作为调用者来调用父类中被覆盖的方法;
说道super了,super用于限定该对象调用它从父类继承继承得到的实例变量或方法;so...对象,所以它不能出现在被static修饰的方法里面;毕竟被static修饰的方法属于类,
instanceof运算符,它的前一个操作数通常是一个引用类型变量,后一个操作数通常是一个类;它用于判断签名的对象是否是后面的类、其子类、实现类的实例,如果是则返回true,否则返回false;

0 0
原创粉丝点击