修饰符
public 公有的
prinvate 私有的 只能在本类中使用
无参的构造方法 默认的
有参的构造方法 多个变量一起声明
构造方法
访问修饰符 构造方法(无返回值类型 与类名相同 可以指定参数)(){
//初始化代码
}
无参构造方法
系统默认调用,默认初始值;
1)方法名与类同名
2)没有返回值
3)与返回值的修饰符无关
作用: 给成员属性默认赋予初始值,=等号赋予初始值用的.
注意:参数变量和成员变量同名时,必须使用this给成员变量指定this本类中的对象
自定义的构造方法:
this关键字:是对一个对象的默认引用,用于区分同成名变量
有参构造,方法重载
public Penguin(String name,int health){
this.name=nemes
this.health=health
}
重载:方法名相同 参数列表不同(个数,类型,顺序),在同一个类中
当有自定义一个有参构造,系统就不再默认分配无参构造,使用有参构造时,必须手动添加有参数构造的定义.
关键字
使用static定义变量
public class Penguin{
int love; //实例变量 也称为普通成员变量
static String name;//加static,静态成员,也称为类变量.
普通变量:
在程序中任何变量或者代码都在编译时由系统自动分配内存来存储
静态属性:类变量
指在编译后所分配的内存会一直存在,直到程序退出内存才会释放这个空间,只要程序在运行,这块内存就会一直存在
//修饰属性:
String sex; //实例变量 也称为普通成员变量
static final String PENGUIN_SEX1="Q仔"; //类的常量(后面的大写变量是常量加static final String PENGUIN_SEX1="Q妹"; static就是类的常量)
}
修饰方法
静态方法
public static void showPeng(){ //加static 静态变量 也称为类变量.
System.out.prinln("静态方法中的名称为"+name);
}
调用静态的方法1
peng.showPeng();//方式1 实例化对象,对象.静态方法();
peng.sex=peng.PENGUIN_SEX1;方法 使用 对象.静态属性;进行使用和赋值.
调用静态的方法2 类名.属性或方法
Penguin.name="楠楠";
penguin.showPeng; //调用类中的方法
修饰代码块
静态代码块
作用 给静态属性赋予初始值使用的
只能给static的属性赋值,
如果在类中没有声明就不能用,只能在构造方法使用
static{
name="初始值"
System.out.prinln("静态代码块"+);
}
注意:静态的代码块在测试的时候永远比构造方法先执行一步
面向对象三大特征之一 封装
封装 是将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问
好处
1)隐藏类的实现细节
2)方便加入控制语句
3)方便修改实现
4)只能通过规定方法访问数据
封装的步骤
1)修改属性的可见性--设为peivate(私有的)
把属性设为私有的
public class Dog{
//属性
private String name;//昵称
private int health;//健康值
private int love; //亲密度
private String straight="拉布拉多犬";//品种
2)创建公有的getter/setter方法--用于属性的读写
右击-Source-Generate Getters and Setters-Select All-ok
get的方法 获得值 只读方法
set的方法 赋值 可写方法
3)在getter/setter方法中加入属性控制语句--对属性值的合法性进行判断
把get方法或者set方法进行判断
public void setHeather(int health){
if(health <0 || health>100){
this.health=40;
System.out.println("健康值必须在0-100之间");
}else{
this.health=health; }}
this关键字的用法
调用属性
this.health=100;
this.name"大黄";
调用方法
this.print();
调用构造方法
this();
this("小黑",100,100,"雄"); //如果使用,必须是构造方法中的第一条语句
例
Dog dog=new Dog;//实例化一个对象 默认是无参构造方法
dog.setNemes("拉布拉多犬");
System.out.println(dog.getName());
dog.setHeather(90);
System.out.println(dog.getHeather());
总结
抽象出类(三步骤)
1)找出名词确定类\属性
2)找出动词确定方法
3)剔除与业务无关的属性和方法
方法重载的规则
1)方法名相同
2)参数项不同
3)与访问修饰符和返回值无关