考虑年龄的输入需要判定引入:
封装:
定义:隐藏事物的属性与实现的细节,只提供公共方法进行操作。
private关键字:
访问权限修饰符;可以修饰成员变量及函数;是封装的一种表现形式,还有类、函数等形式。
set/get方法的说明:
需要提供公共方法,才能访问被private修饰的成员变量。
set方法主要是修改成员变量的值;
get方法主要是获取成员变量的值。
注意:set/get并不一定一起出现,根据实际需求来使用相应的功能。
this关键字:
是当前所属成员函数类对象的引用。
每个类内方法都有一个默认的this。
作用:解决局部变量隐藏成员变量的问题【就近原则】
构造方法:
方法名跟类名一样,没有确定的返回值类型,没有返回值。
作用:成员变量初始化
没有显示写出构造方法时,系统默认提供无参构造方法;只要有显示写出构造方法,默认构造函数不再提供。
【自己写无参构造函数 VS 默认无参构造函数】
建议:自己在每一个类中添加一个无参构造函数。
构造方法重载:【参数列表不同】
构造代码块:
代码块:在{}内的代码;
作用:将构造方法内的共同代码集合在一起,且优先于构造方法执行。
关于初始化相关操作执行顺序:
默认初始化-》显示初始化-》构造代码块-》构造函数
static关键字:【资源共享】
static修饰成员变量特点:
A:随类的加载而加载; B:优先于类对象而存在;
C:修饰的成员变量被所有对象共享;
D:可以直接用类名.的方式调用。
注意事项:
A:static修饰的方法中,没有this关键字;
B:静态方法只能访问静态变量,非静态方法都可以调用;
C:可以使用类名.的方式调用。
文档注释:
格式: /** */
格式关键字:@author 作者 @version 版本 @param 参数 @return 返回值
文档生成命令示例: 【目标目录】 【源文件名】
javadoc -d d:\\ -author - version ArraryTest.java
API应用:
Math类
[ abs()//绝对值 ceil()//天花板值 floor()//地板值 round()//四舍五入【+0.5】
random()//产生随机值[0.0,1.0) max()//最大值 min()//最小值 ]
猜数字游戏
1:封装
(1)隐藏实现的细节,提供公共的访问方式。
类,方法等其实都是封装的具体体现。
(2)private关键字
A:用于修饰成员变量和成员方法。
B:被修饰的内容在其他类中是不可以被访问的。
(3)常见的应用:
类中的所有成员变量私有,给出对应的get/set方法。
代码体现:
class Student
{
private String name;
private int age;
public Student(){}
public Student(String name,int age)
{
this.name = name;
this.age = age;
}
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;
}
}
2:构造方法
(1)格式及特点
格式:
访问权限修饰符 类名(参数...){}
访问权限修饰符:
public,private
特点:
A:方法名和类名相同
B:没有返回值类型
C:没有具体的返回值
(2)注意事项:
A:如果你不给构造方法,jvm会自动给你一个无参构造方法。
B:如果你给出了构造方法,那么,jvm将不再提供无参构造方法。
这个时候,你如果要使用无参构造方法:只能自己提供
推荐:永远手动给出无参构造方法。
3:this关键字(掌握)
(1)是一个关键字。代表当前类对象的引用。
简单记:在方法中,哪个对象调用方法,this就代表谁。
除了静态方法外,所有的方法中有隐含的有一个this引用
(2)应用场景:
解决局部变量隐藏成员变量问题。
4:static关键字
(1)是一个关键字。可以修饰成员变量和成员方法。
(2)静态的特点:
A:随着类的加载而加载
B:优先于对象存在
C:被类的所有对象共享
D:可以通过类名调用
(3)静态的注意事项:
A:在静态方法中是没有this关键字的。
B:静态方法只能访问静态成员。
(4)静态内容的调用:
A:被对象调用
B:被类名调用
推荐被类名调用。
(5)什么时候该用static呢?
如果某个内容是所有对象共享的,就用静态修饰。
举例:
水杯和饮水机。
厕所和人。
老师和学生。
5:Math类的随机数(掌握)
类名调用静态方法。
包:java.lang
类:Math
方法:public static double random():
java.lang包下的类是不用导包就可以直接使用的。
产生1-100之间的随机数:
int number = (int)(Math.random()*100)+1;