面向对象:为了让代码更加简洁,并且提高开发效率和维护性。让代码高复用,而引入的一种思想。
面向对象思想在代码中的应用
类(class):对一个事物的形容,一张图纸,抽象的。
实例(instance):由类生成的一个对象,类的实体。
//小例子:描述心目中的女神,黑色长发,年龄18,性格温柔呆萌,身高155,体重90,唱歌好听,游戏不坑
女朋友的类:
/**
* 图纸,描述
* 描述心目中的女神,黑色长发,年龄18,性格温柔呆萌,
* 身高155,体重90,唱歌好听,游戏不坑
*
*/
public class GirlFriend {
//属性
String FaXing="黑长直";
int age=18;
String XingGe="温柔呆萌";
int high=155;
int weight=90;
//行为
void playGame(){
System.out.println("有点坑");
}
void sing(){
System.out.println("唱歌好听");
}
void saySelf(){
System.out.println("头发:"+FaXing+"年龄"+age+"性格"+XingGe+"身高"+high+"体重"+weight);
}
}
类的实例化:关键字 new实例化的关键字
—》main方法进行实例,也就是在程序里面进行的实例化
public class DemoForGF {
/**
* 存在主方法,为一个程序
*/
public static void main(String[]args) {
//把一个图纸生成实体 class new出来-->对象
GirlFriend xiaomei=new GirlFriend();
// xiaomei.sing();
// xiaomei.playGame();
// //小练习,给你们的女神加上一个自我介绍的方法,
// //把她自己的属性都介绍出来
// xiaomei.saySelf();
//
GirlFriend lily=new GirlFriend();
lily.FaXing="金色卷发";
lily.high=180;
lily.weight=120;
lily.saySelf();
xiaomei.saySelf();
}
}
注意点:(类class)与(对象实例new出来的部分)的关系
1. 对象是类的实例 类的实例化是对象
2. 类必须通过对象才可以使用,那么对象的所有操作都在类中定义。
面向对象思想的三大属性
1. 封装性
(属性private私有化,提供pulibc的方法对属性进行修改以及访问)
对于一个java程序员,要求对所有属性都进行封装。
访问权限修饰符:可以修饰方法,可以修饰属性
变量根据作用域划分:
成员变量(类属性):class内,方法外
局部变量:方法里面定义的变量,或者方法的参数,代码块里面的变量
成员变量声明可以不要初始值,但是局部变量声明必须填写初始值。
public class Student {
//整形的默认值 0
//小数的默认值0.0
//布尔型的默认值false
//char的默认值0
//String的默认值 null
private String name;//成员变量
private int age;
private int id;
private char c;
public void setName(Stringname){
int shu=30;//局部变量
System.out.println(shu);//不写初始值,使用的时候就报错
}
}
在方法里面使用成员变量,如果 成员变量名字 和 局部变量的名字一致
会优先使用局部变量(就近原则)
如果想要使用成员变量,this.变量名
(this代表当前类,this.变量名代表当前的类属性)