07.27 类,方法,对象知识梳理

对象
java对对象 首先要抽象数据类型
(将不同类型的数据的集合组成整体来描述一种新的事物)

类定义了一种抽象数据类型
(定义了抽象数据类型的组成(成员变量)
还定义了对该类型可以实施的操作)
public class Emp{
String name;
int age;
char gender;
double salary;
}
定义了 Emp类型的组成,即成员变量(4个)
定义成员变量:
class 类名{
成员变量类型 变量名称;
... ...;
... ...;
}

定义类的方法 (描述对象的行为,封装对象的功能)

class 类名 {
返回值类型 方法名称(参数列表){
方法体 ....
}
}
例子:
public class A{
int a,int b;
public void aa()
{
a++
}
}

创建并使用对象
类定义完红藕,使用new关键字来创建对象。
如: Student stu = new Student();
(new Student()才是对象,stu是引用(对象的地址) )
当创建了引用类型变量之后,就可以通过引用来访问对象的成员
变量或调用方法,比如:
class Point
{
int x;
int y;
}
....此处省略
Point p= new Point();
p.x=23;
p.y=89;


方法重载:
在Java语言中,允许多个方法的名称相同,但参数列表不同,此
种方式称为方法的重载(overload)。
构造方法:
构造方法是在类中定义的方法,
构造方法的名称必须与类名相同。
构造方法没有返回值,但也不能写void。
【访问修饰符】 类名()
{
// 构造方法体
}

访问限制修饰符:
private, public, protected, friendly
default是默认的,而且不是Java中的关键字.同一个包可以访问
private:私有,内部访问
public:共有,都可以访问
protected:同一个包或者子类可以访问

java中被public,protected,default修饰符修饰的方法,无论
是否在同一个类中,只要能被访问到,都可以通过该对象的实体
对象来访问。Java语言中的构造方法常常用于实现对对象成员变
量的初始化。

class Student
{
String stuName;String stuNo;
// 构造方法
public Student(String stuName,String stuNo)
{
this.stuName=stuName;
this.stuNo=stuNo; }
在创建对象时,构造方法写在new关键字之后,可以理解
为:“new”创建了对象,而构造方法对该对象进行了初始化。其
中,this后的stuName代表成员变量,等号后面的stuName代表初
始化成员变量的参数

this关键字
this关键字用在方法体中,用于指代调用该方法的当前对象,简
单的说:哪个对象调用方法,this指的就是哪个对象。严格来讲
,在方法中需要通过this关键字指明当前对象。在构造方法中,
用来初始化成员变量的参数一般和成员变量取相同的名字,这样
会有利于代码的可读性,但此处就必须通过this关键字来区分成
员变量和参数了,而不能省略this

默认的构造方法
JAVA语法规定,任何一个类都必须含有构造方法,假如源程序中
没有定义,则编译器在编译时将为其添加一个无参的空构造方法
(此方法称之为“默认的构造方法”)。
Student stu = new Student();
Student()即为默认的空构造方法

构造方法的重载
对一个类定义多个构造方法,这些构造方法都有相同的名称(类
名),只是方法的参数不同,称之为构造方法的重载。

在创建对象时,Java编译器会根据不同的参数调用来不同构造方
法。声明:
Student(String stuName,String stuNo)
{
...
}
调用:
Student stu = new Student(‘lx’,’20170707’);

声明:
Student(String stuName)
{
...
}
调用:
Student stu = new Student(‘lx’);

‘堆’
对象存储在堆中。用于存储使用new关键字所创建的对象。
‘栈’
栈用于存放方法中的局部变量。存储程序运行时在方法中声明的
所有的局部变量。方法中的变量即为局部变量,是在栈内存中分
配,若变量为值类型,则在栈中存储的就是该变量的值。若变量
为引用类型,则在栈中存储的是堆中对象的地址。
成员变量与局部变量的差别
局部变量:
1.定义在方法中
2.没有默认值
3.方法被调用时,存在栈中,方法调用结束时局部变量从栈中清

成员变量:
1.定义在类中,方法外;
2.由系统设定默认初始值,可以不显式初始化;
3.所在类被实例化后,存在堆中,对象被回收时,成员变量失效

 

 

posted @ 2017-07-27 21:47  孙小宝  阅读(172)  评论(0编辑  收藏  举报