java中的面向对象基础知识详解

什么是类?

类是对一组具有相同属性、操作的同类事物的描述,是抽象的、概念上的定义。

什么是对象?

对象是实际存在的实体,是通过类生成的

类和对象的关系:

类和对象之间的关系就像模具和通过模具生产出的产品的关系一样,类定义好了通过它生成的对象有哪些属性和方法,而模具定义好了通过它生成的产品该是个什么样子的

如何定义一个类:

一个类中可以包含属性(也叫变量)和方法(也叫函数)具体定义如下

class Person{          //Person为类的名称
          final int MAX = 99;
          String name;     //   name为类Person中的属性 该属性为String类型的
          static int age;
          public Person(String s,int a){
               name = s;
               age = a;
          }                                        //构造方法 含有两个参数 s 和a,没有返回值
          public Person(){
                 name = “defaultName”;
                 age = 1;
          }
          public void setName(String name){
               this.name = name;

          }
          public String getName(){
               return name;
          }                    //普通方法getName ,没有参数,返回值为String类型
          public static int getAge(){
               return age;
          }

}
通过类创建对象
	Person person;//这里是声明了一个对象,此时person的值未null
	person = new Person(“yee4”,1);//new person(“yee4”,1);调用Person类的构造方法,在堆内存开辟一块空间,并返回它的地址,给等号左边的person引用。
对象的使用

创建了对象后,可以通过.操作符号来调用这个对象的公开的属性和方法如

	person.getName();//调用person对象的getName();方法
	person.age=1;//让person对象的age属性的值为1;
实例变量:

上面的name就是实例变量,实例变量是属于某个对象的,只能通过对象调用,如

	person.name;
静态变量:

age是静态变量,静态变量是属于所有对象共有的,可以通过对象调用也可以通过类名调用 ,

	person.age = 1;
	或者
	Person.age =1;
final变量(常量)

Person类中的MAX就是final变量,final常量声明时必须初始化,该常量只能读取它的值,不能去改变它的值

实例方法

上面的getName()方法就是实例方法,实例方法只能通过对象调用,如

	person.getName();
实例方法的定义
	返回值 方法名(参数类型 参数名){
     	方法体;
	}
静态方法

getAge()方法就是静态方法,和静态变量一样,静态方法时属于类的,也就是说所有对象共用一个静态方法,静态方法可以通过某个对象名调用,也可以直接通过类名调用。如

	person.getAge();
	Person.getAge();

注意,在静态方法中只能调用这个类中的其他静态方法或者静态变量,不能调用这个类中的实例方法或者实例变量

方法重载

方法重载是在同一个类中方法名相同,参数个数不同,或者是参数类型不同的几个方法,形成了重载。如上面的两个构造方法

person();和person(String s,int a );

this关键字的使用

在 public void setName(String name) 这个方法中用到了this关键字,this是代表当前对象,如果通过刚才的person对象调用setName方法,如

	person.setName(“newName”);

这个this也就是person这个对象,this.name,也就是person.name,由于作用域的原因,在setName这个方法中有和name这个属性同名的变量,我们直接写name,访问的是这个作用域的变量,也就是参数name,如果没有同名的变量,我们要访问这个对象中的属性,可以省略this.。 注意,this是代表某个对象,而静态方法不是属于某个对象,所以在静态方法中不能使用this

包的定义

包是一种将相关类及接口组合起来的集合体,即命名空间

声明方式:

	package name;

name是包名称,包名习惯写成com.公司名称.地区.包名称

导入包

如果我们要导入包com.yee4.liu.HelloWorld

	import com.yee4.liu.HelloWorld;

导入包后,就可以使用其他包中的类名了

 

 

本文转载于安卓杂谈网http://www.yee4.com/blog/117.html

 

 

猜你喜欢

转载自liuyutingat163.iteye.com/blog/2056331