2、面向对象(封装)
面向对象思想:
面向对象是基于面向过程的编程思想。
面向过程:强调每一个功能的步骤
面向对象:强调的是对象,然后用对象去调用功能
特点
A:符合我们思考习惯的思想
B:可以将复杂的事情简单化
C:执行者----指挥者
类和对象
A:属性 ---- 就是事物的描述信息
B:行为 ---- 事物能够做什么
类:一组相关属性和行为的集合
对象:就是该事物的具体体现
成员变量
位置:类中,方法外
初始化值:不需要
成员方法
去掉static 关键字
Phone
package myTest;/** * Created by JackFeng on 2020/3/2. */public class Phone { String barnd; int price; String color; public void call(String name) { System.out.println("给" + name + "打电话"); } public void sendMessage(){ System.out.println("给所有人群发短信"); }}
PhoneDemo
package myTest;/** * Created by JackFeng on 2020/3/2. */public class PhoneDemo { public static void main(String[] args) { Phone p = new Phone(); System.out.println(p.barnd + "---" +p.price+ "----"+p.color); p.barnd = "iphone"; p.price = 8888; p.color = "金色"; System.out.println(p.barnd + "---" +p.price+ "----"+p.color); p.call("DataScience"); p.sendMessage(); }}
成员变量和局部变量的区别
区别:
A: 在类中的位置不同
成员变量:类中,方法外
局部变量:方法中或者方法声明上(形式参数)
B:在内存中的位置不同
成员变量:堆内存
局部变量:栈内存
C:生命周期不同
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用而存在,随着方法调用完毕而消失
D:初始化值的问题
成员变量:有默认值
局部变量:没有默认值,必须先定义,赋值,最后使用
package myTest;/** * Created by JackFeng on 2020/3/2. */public class Variable { // 成员变量 int x; public void show (){ //局部变量// int y; // 如果y 没有值 就会报错 int y = 1; // 赋值就会不报错 System.out.println(y); // 调用x 有默认值 System.out.println(x); }}
标准学生类代码
package myTest;/** * Created by JackFeng on 2020/3/2. */public class StudentDemo { public static void main(String[] args) {// 无参 + set方法 Student s = new Student(); s.setName("Data"); s.setAge(26); System.out.println(s.getName()+"===="+s.getAge()); // 带参构造 Student s2 = new Student("DataScinece", 26); System.out.println(s2.getName()+"===="+s2.getAge()); }}
学生类
package myTest;/** * Created by JackFeng on 2020/3/2. */public class Student { private String name; private int age; // 构造方法 // 无参数 public Student(){} // 有参数 public Student(String name, int age ){ this.name = name; this.age = age; } // get set 方法 public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; }}
类名
如果类名作为形式参数传递
- 要的是该类的对象
如果类名作为返回值类型
- 返回的是该类的对象
(本章主要实验封装)
****期待您的进步
在看和转发
都是一种支持
本文分享自微信公众号 - DataScience(DataScienceTeam)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。