城管希课堂之对象
1.面向对象
面向过程:我应该干什么 重在过程* 挑选一个电脑(台式)* 1.挑一个CPU * 2.挑一个主板* 3.挑一个显卡* 4.挑一个显示器
面向对象:重点在对象 我该找谁什么 事务的执行者 指挥者* 找一个懂电脑的人 帮你去选购* 更贴近任的思维(懒人思维)* 想挣钱-->干it-->学it-->找培训机构-->找到了王龙(会扯犊子)* 成为一个老板(面向对象思维)* 员工:找一个会炸鸡排的* 市场:帮我做宣传* 收银:帮我收钱* 秘书:有事给秘书
2.面向对象的好处
* 1.将复杂的问题 简单化* 2.从事务的执行者 转换为 事务的指挥者 * 3.更贴近人的思维(懒人思维)
* 类和对象* java中 最基本的单位 就是类* 类:一类抽象事物的描述(模板)* 对象:用类创建出来的就是对象(具体的事物)* * 车图纸(模板)* 名字* 咕噜数* 排气量* 颜色* * 车* 奥迪 R8* 4个轮子* 5.0T* 红的
public static void main(String[] args) {//创建一个学生类的对象//类名 对象名 = 初值;//成员变量会随对象一起进入堆中//new 一次 就在堆中开辟一块内存空间//student stu 对象的引用(保存的对象的地址)Student stu = new Student();Student stu1 = stu;//使用 对象名.属性名 进行赋值和取值
// stu.name="it彭于晏";
// stu.name= "城管希";
// stu.age = 22;
// stu.gender = "男";//调用成员方法 对象名.方法名();stu.eat();stu.play("刺激战场");//那个对象调用的该方法 打印的就是哪个对象 属性stu.sayHi();}
/** 学生类* 属性:姓名 年龄 性别* 吃饭* 睡觉* 打游戏*/
class Student {// 属性(成员变量 实例变量) // 书写位置:类中 方法外// 行为(方法)跟函数一样 就static先不写// 书写位置:类中String name;int age;String gender;//成员方法/实例方法public void eat() {System.out.println("吃饭");}public void sleep() {System.out.println("睡觉");}public void play(String game) {System.out.println("打游戏"+game);}//介绍自己的方法public void sayHi() {System.out.println("姓名:"+name);System.out.println("年龄:"+age);System.out.println("性别:"+gender);}}
//创建person对象Person p1 = new Person();p1.fun();//创建不同包下的同名类对象//需要指定完整的包名来创建对象//一般情况下 不建议写同名类 书写麻烦com.lanou4g.Person p2 = new com.lanou4g.Person();p2.fun();//创建不同包下的不同名类Test test = new Test();
// 参数是基本数据类型public static void fun1(int a) {System.out.println(a);a = 10;}// 参数是引用数据类型// 要什么类型 就给什么类型public static void fun2(Person p) {p.name = "刘斌";p.age = 24; }public static void main(String[] args) {int a=100;fun1(a);System.out.println(a);Person p1 = new Person();p1.name = "凡鹏";p1.age = 28;fun2(p1);p1.sayHi();}
* 匿名对象:没有名字的对象* 1.在方法传参数的时候使用* 2.只调用一下方法(不赋值的情况下)
// 创建两个person对象 并赋值// 将重复代码 抽成一个方法Person p1 = new Person();p1.name = "anglong";p1.age = 16;p1.sayHi();Person p2 = new Person();setNameAndAge(p2, "menglong", 8);//使用匿名对象 当方法参数//好处:减少代码量 使用方便setNameAndAge(new Person(), "坤", 20);//匿名对象也是对象 也可以赋值 调用成员方法new Person().name = "xin";new Person().age = 30;new Person().sayHi();//只调用方法可以使用匿名对象//测试方法时 可能会使用new Person().fun();
* 封装* 写方法就是封装的一种* 相当于隐藏代码的实现和属性 不能随意修改* 需要开放访问的方式(方法) 获取 修改* 好处:* 1.增加代码的复用性* 2.提高代码的安全性* * 关键字(权限修饰符)* private 私有的* 被private 修饰的属性 只能本类中访问
public static void main(String[] args) {Phone phone = new Phone();phone.setPhoneName("vivo");phone.setColor("红色");System.out.println(phone.getPhoneName());System.out.println(phone.getColor());phone.sayHi();
}
class Phone{//java bean 规范(java 实体类创建出来的对象)//1.声明成员变量 都需要 私有化//2.给每个成员变量提供 set/get方法//3.必须提供 无参的构造方法private String phoneName;private String color;//对外开放 访问方式//获取方法public String getPhoneName(){return phoneName;}//修改方法(设置方法)public void setPhoneName(String phoneName){//就近原则//关键字 this 代表的是 本类的对象//this.成员变量 获取本类的 成员变量//this.成员变量 = "哈哈";给本类的成员变量赋值//this.成员方法 调用本类的成员方法//谁调用了这个方法 谁就是thisthis.phoneName = phoneName;}//命名规范 //获取 get+ 成员变量名(首字母大写)//修改 set+ 成员变量名(首字母大写)public String getColor() {return color;}public void setColor(String color){this.color = color;}public void sayHi() {System.out.println(phoneName+" "+color);}}
* 成员变量 和 局部变量区别* 1.在类中位置不同:* 成员变量:在类中方法外* 局部变量:在方法定义中或者方法声明上* 2.在内存中的位置不同:* 成员变量:在堆内存* 局部变量:在栈内存* 3.生命周期* 成员变量:随着对象的创建而存在,随着对象的消失而消失* 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失* 4.作用域* 成员变量:整个类中 * 局部变量:方法中* 5.初始值* 成员变量:跟堆内存一样 默认初始值* 局部变量:默认没有初值 不给初值 编译报错
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
