首页 > 代码库 > Java(13) 抽象和封装
Java(13) 抽象和封装
一、简述从现实世界中抽象出类的步骤
第一:找出分类(分析出类)
第二:找出类的特征(分析类的相关属性)
第三:找出类的行为(分析类的方法)
二、常量(经常出现的变量值)
2.1 语法:
public static final 数据类型 常量名 = 常量值;
注意:1.final最终的,修饰的变量不能被修改
2.变量名的所有字母都大写,多个单词用下划线(_)分割,
例如:public static final String SEX_MALE ="Q仔";
常量的访问式:类名.常量名
示例:
1 public class Example1 { 2 String name = "无名氏";//昵称 3 int health =100;//健康值 4 int love = 0;//亲密度 5 public static final String SEX_MALE= "雌"; 6 public static final String SEX_FEMALE = "雄"; 7 String sex = SEX_MALE;//性别 8 public void ji(){ 9 System.out.println("宠物的自白:\n我的名字叫"+this.name+",健康值是"+this.health 10 +",和主人的亲密度是"+this.love+",我是一只"+this.sex+"。"); 11 } 12 }
1 public class Text1 { 2 public static void main(String[] args){ 3 Example4 qi = new Example4(); 4 System.out.println("第一个企鹅的性别是:"+qi.sex); 5 qi = new Example4(); 6 qi.sex =qi.SEX_FEMALE; 7 System.out.println("第二个企鹅的性别是:"+qi.sex); 8 qi = new Example4(); 9 qi.sex =qi.SEX_MALE; 10 System.out.println("第三个企鹅的性别是:"+qi.sex); 11 } 12 }
运行结果为:
三.构造方法(特殊方法,用来创建对象,初始化值)
3.1 语法:
public 类名( 参数列表){
//方法体
}
a.使用
类名 对象名 = new 构造方法名(参数);
Dog d = new Dog();
b.与一般方法的区别
1,构造方法没有返回值类型;
2,构造方法的方法名就是类名,一般方法可以任意取
3,构造方法调用:new 构造方法名(参数);
一般方法调用:对象名.方法名(参数);
c.构造方法的作用
1,创建方法对象
2,初始化值(属性值);
注意:当你没有写构造函数时,java会提供默认的无参构造函数
例如:public Dog(){
}
示例2:
1 public class Example2{ 2 String name = "无名氏";//昵称 3 int health =100;//健康值 4 int love = 0;//亲密度 5 String sex = "Q仔";//性别 6 public Example6(){ 7 name = "楠楠"; 8 love =20; 9 sex = "Q妹"; 10 System.out.println("执行构造方法"); 11 } 12 public void ji(){ 13 System.out.println("宠物的自白:\n我的名字叫"+this.name+",健康值是"+this.health 14 +",和主人的亲密度是"+this.love+",我是一只"+this.sex+"。"); 15 } 16 public static void main(String[] args){ 17 Example6 qi = null; 18 qi = new Example6(); 19 qi.ji(); 20 } 21 }
运行结果为:
四、方法重载
方法名一样,参数列表不一样
注意:重载与返回值了类型和访问修饰符无关
1 public class Example8 { 2 String name = "无名氏";//昵称 3 int health =100;//健康值 4 int love = 0;//亲密度 5 String sex = "Q仔";//性别 6 public Example8(){ 7 name = "楠楠"; 8 love =20; 9 sex = "Q妹"; 10 System.out.println("执行构造方法"); 11 } 12 //两个参数的构造方法 13 public Example8(String name,String sex){ 14 this.name = name; 15 this.sex = sex; 16 } 17 public Example8(String name,int health,int love,String sex){ 18 this.name = name; 19 this.health= health; 20 this.love = love; 21 this.sex = sex; 22 } 23 public void ji(){ 24 System.out.println("宠物的自白:\n我的名字叫"+this.name+",健康值是"+this.health 25 +",和主人的亲密度是"+this.love+",我是一只"+this.sex+"。"); 26 } 27 public static void main(String[] args){ 28 Example8 qi = null; 29 qi = new Example8(); 30 qi.ji(); 31 qi = new Example8("丫丫","企鹅"); 32 qi.ji(); 33 qi = new Example8("妹妹",80,20,"Q仔"); 34 qi.ji(); 35 } 36 }
运行结果为:
六、封装
6.1 作用:隐藏类不实现细节;
6.2 步骤:
1.采用了private修饰符的变量不能在类外部访问,而通过public修饰的set和get方法访问
2.在set方法中编写相应存取控制语句可以避免出现不符合实际需求的赋值
将属性均设为private权限,这样的属性只在类内可见,
用public权限的ste方法和get方法实现对属性的存取。
在set方法中对输入的属性值的范围进行判断,简单说,指定某一事物的值并要进行判断的时候用set
6.3 this关键词
this:表示当前对象
调用属性:this.属性名
调用方法:this.方法名();
this():表示调用构造函数。
注意:this(),必需写在构造函数的第一行。
Java(13) 抽象和封装