面向对象二:
1.封装:就是指隐藏对象的属性和实现细节,仅对外提供公共访问方式(写set和get方法提供给外界,提高访问数据的安全性)
private :是一个关键字用于修饰成员变量和成员方法(还可以修饰内部类),被私有化的成员只在本类中使用,不能被其他类直接访问。
private仅仅是封装的一种体现,类也是一种体现。
JavaBean---简单的描述类
2.构造方法:
格式及其特点:方法名和类名一致
没有返回值类型
没有具体的返回值
作用:给对象进行初始化
注意事项:
如果你没有给出构造方法系统给出一个默认的无参数构造方法
如果你给了一个构造方法,系统将不再提供的默认无参构造
建议永远给出一个无参的构造方法
构造方法的重载
给成员变量赋值方法:
set方法
构造方法
3.this关键字:
this代表其所在方法所属对象的引用
哪个对象调用方法,在方法内部就有一个隐含的this代表这个对象
应用场景:用于解决局部变量隐藏成员变量值得问他
用于构造方法中
4.代码块:
由{}括起来的代码
分类:
定义在方法中的代码块叫局部代码块,作用就是让变量早点从内存中消失,即控制变量的生命周期
定义在方法外的代码块,叫构造代码块,作用把所有构造方法中公共的部分提取出来放在构造代码块中,减少代码的重复率
执行特点:每次创建对象都执行,而且是优先于构造方法
5.对象的初始化过程:
成员变量默认初始化----显示值替代默认值---构造代码块---构造方法执行
附代码解释:
class Person
{
private String name="haha";
private int age=10;
//代码块
{
System.out.println(name+"--"+age);//haha 10
name="hehe";
age=20;
System.out.println(name+"--"+age);//hehe 20
}
public Person(){
//无参数构造
}
public Person(String name,int age){
//带参数的构造
System.out.println(this.name+"--"+this.age);//hehe 20带this就是调用成员变量
System.out.println(name+"--"+age);//heihei 30 没有带this就是局部变量
this.name=name;
this.age=age;
System.out.println(name+"--"+age);//heihei 30 赋值后成员变量发生改变
}
public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
public void setAge(int age){
this.age=age;
}
public int getAge(){
return age;
}
}
class PersonTest
{
public static void main(String[] arge){
Person p=new Person("heihei",30);
System.out.println(p.getName()+"--"+p.getAge());//heihei 30
}
}
6.static关键字
static可以修饰成员变量成员方法;
被类的所有对象共享;
随着类的加载而加载;
优先于对象存在;
可以直接被类容调用 格式:类名.方法();
总结:某个内容被所有对象共享,那么,该内容就应该用静态修饰,没有被静态修饰的内容,其实是属于对象特殊属性.
类的组成:
成员变量:属性 类变量:被static修饰的成员变量
实例变量:没有被static修饰的成员变量
构造方法:初始化
成员方法:功能或者行为
注意事项:在静态方法中是没有this关键字的因为静态是随着类的加载而加载,而this是对象创建才存在
静态方法只能访问静态成员变量和静态成员方法,(非静态方法可以调用静态方法也可以调用非静态方法)。
静态的内容可以通过对象调用也可以使用类名调用,推荐使用类名调用
7.如何制作说明书:
/**
*@author luzhiquan
头文件 *@version V1.0
*
*/
/**
方法 *@param int[]
*@return int
*/
帮助文档的生成:DOS 命令下的代码:javadoc -d doc(存放的路径) -author -version ArrayTools.java
生成CHM文档也可以。
8.API文档的注意事项:
如果是继承java.lang的就不需要导包
先查找构造方法:有构造方法就通过构造方法创建对象使用
没有构造方法就说明这个类的成员一般是静态通过类名调用
查看时候:左边:是否静态
是否有明确返回值
右边:看方法名
看参数的类型
字段------成员变量-------属性 格式:静态就是类名.变量;非静态就是创建对象调用
9.学习查看math类:
random的用法(猜数字游戏):
double d=Math.random();
int number=(int)(d*100)+1;1—100之间
合起来写:(int)(Math.random()*100)+1;
注意事项:用while循环猜,break跳出。
|
|