网站建设服务器介绍图片,企业网站建设前网站目的需明确,浙江建设职业技术学院提前招网站,手机网站怎么在电脑上打开正是风雨欲来的时候#xff0c;火却越烧越旺了 ——24.1.20 重点 1.为何使用面向对象思想编程 2.如何使用面向对象思想编程 3.何时使用面向对象思想编程 4.利用代码去描述世间万物的分类 5.在一个类中访问另外一个类中的成员 - new对象 6.成员变量和局部变量的区别 一… 正是风雨欲来的时候火却越烧越旺了 ——24.1.20 重点 1.为何使用面向对象思想编程 2.如何使用面向对象思想编程 3.何时使用面向对象思想编程 4.利用代码去描述世间万物的分类 5.在一个类中访问另外一个类中的成员 - new对象 6.成员变量和局部变量的区别 一、面向对象的介绍 1.面向过程自己的事情自己干代表语言C语言 eg、洗衣服每一步都自己干 - 找个盆加水放洗衣粉找搓衣板开始洗衣 2.面向对象自己的事情别人帮忙去做代表语言Java语言 eg、洗衣服自己的事情别人干 - 全自动洗衣机 3.使用面向对象思想编程方便快捷 很多功能都已经实现好了只需要将其拿来使用即可简化了我们自己的编写过程减少了代码量 4.什么时候使用面向对象思想编程 调用别人的功能时 在一个类中想使用别的类中的思想时就使用面向对象思想编程 至于使用的代码功能细节我们不关心我们只需要知道如何使用即可 5.如何使用面向对象思想编程 ①newnew. - 点代表的是调用 ②特殊如果调用的成员带static关键字我们直接使用类名点即可 二、类和对象
2.1 类(实体类)_class 1.测试类带main方法的类主要是运行代码的 2.实体类是一类事物的抽象表示形式 世间万物的分类比如犬类、人类、猫类、鼠标类 组成部分 1.属性成员变量这一类事物有什么 ①定义位置类中方法外 ②作用范围作用于当前类 ③定义格式数据类型 变量名 ④默认值 整数0 小数0.0 字符\U0000‘ 布尔false 引用null 2.行为成员方法这一类的事物能干嘛 只需要将方法中所学的static干掉其他的都一样 只需要将某个分类的属性和行为描述出来就可以描述这个类
案例
人类
public class Demo65Object02Person {//属性 - 成员变量String name;int age;//行为 - 成员方法public void eat(){System.out.println(人要吃饭);}public void drink(){System.out.println(人要喝水);}
}
动物类
public class Demo66Object03Animal {String kind;//品种String color;//颜色public void eat(){System.out.println(动物要吃东西);}public void sleep(){System.out.println(动物要睡觉);}
小明类
public class Demo67Object04Phone {//属性String brand;String color;int price;//行为public void call(String name){System.out.println(给name打电话);}public String message(){return 给小明发短信;}
2.2 对象 1.概述一类事物的具体体现 2.使用 ①导包 如果两个类在同一个包下想要使用对方的成员不需要导包 如果两个类不在同一个包下想要使用对方的成员需要导包 特殊包java.lang - 使用lang包下的类不需要导包 - String 注在学习四种权限修饰符前尽量让两个类在同一个包下 ②创建对象想要使用哪个类中的成员就new哪个类的对象 类名 对象名 new 类名 - 如Person person new Person(); Animal animal new Animal(); ③调用成员成员变量、成员方法 - 想要使用哪个类中的成员便用哪个类的对象去点哪个成员 对象名.成员变量名 值 对象名.方法名 - 调用的是无参无返回值的方法 对象名.方法名实参- 调用的是无参有返回值的方法 数据类型 变量名 对象名.方法名 - 调用的是无参有返回值的方法 数据类型 变量名 对象名.方法名实参 - 调用的是有参有返回值的方法 示例
public class Demo65Object02Person {//属性 - 成员变量String name;int age;//行为 - 成员方法public void eat(){System.out.println(人要吃饭);}public void drink(){System.out.println(人要喝水);}
}public class Demo66Object03Animal {String kind;//品种String color;//颜色public void eat(){System.out.println(动物要吃东西);}public void sleep(){System.out.println(动物要睡觉);}
}public class Demo67Object04Phone {//属性String brand;String color;int price;//行为public void call(String name){System.out.println(给name打电话);}public String message(){return 给小明发短信;}
}public static void main(String[] args) {Demo65Object02Person p new Demo65Object02Person();p.age 21;p.name 小明;p.drink();p.eat();System.out.println(p.age);System.out.println(p.name);System.out.println(—————————————————————————————————————————————);Demo66Object03Animal a new Demo66Object03Animal();a.color 白色;a.kind 金毛巡回犬;a.sleep();a.eat();System.out.println(a.color);System.out.println(a.kind);System.out.println(————————————————————————————————————————————);Demo67Object04Phone ph new Demo67Object04Phone();ph.brand oppo findx3pro;ph.color white;ph.price 5799;ph.message();ph.call(张三);System.out.println(ph.brand);System.out.println(ph.color);System.out.println(ph.price);ph.call(小明);ph.message();}练习 用代码描述一个手机类在测试类中为手机类中的属性赋值并且调用手机类中的功能 public class Demo67Object04Phone {//属性String brand;String color;int price;//行为public void call(String name){System.out.println(给name打电话);}public String message(){return 给小明发短信;}
}public static void main(String[] args) {Demo67Object04Phone phone new Demo67Object04Phone();//手机类类名phone.brand OPPO Findx3Pro;phone.price 5599;phone.color 白色;System.out.println(phone.brand);System.out.println(phone.price);System.out.println(phone.color);phone.call(小明);phone.message();
} 2.3.匿名对象的使用 1.int i 10; ①int是数据的类型 ②i变量名 ③等号右边的10真正的数据 2.Person p new Person() ①等号左边的Person对象的类型好比是int ②p对象名 ③等号右边的new Person真正的数据是一个Person对象将这个对象真正创建出来了 1.所谓的匿名对象其实就是没有等号左边的部分只有等号右边的部分对象 2.使用 new 对象().成员 3.注意 ①如果只想单纯的调用一个方法让方法执行我们可以考虑匿名对象 ②但是如果涉及到赋值千万不要使用匿名对象 示例
public class Demo65Object02Person {//属性 - 成员变量String name;int age;//行为 - 成员方法public void eat(){System.out.println(人要吃饭);}public void drink(){System.out.println(人要喝水);}
}public class Demo70Object07PersonNoName {public static void main(String[] args) {//原始方式Demo65Object02Person p new Demo65Object02Person();p.name 小明;System.out.println(p.name);p.eat();System.out.println();//匿名对象方式new Demo65Object02Person().eat();}
} //匿名对象方式:new Demo65Object02Person().eat();new Demo65Object02Person().name 小红;System.out.println(new Demo65Object02Person().name); //null//无法输出 涉及到赋值千万不要使用匿名对象 三、对象的内存解析
1.一个对象的内存图 2.两个对象的内存图 phone1和phone2都是新new出来的对象所以在堆内存中开辟了两个不同的空间修改自己空间中的数据不会影响其他空间中的数据 3.两个对象指向同一个空间的内存图 phone2是phone1给的phone1在内存中保存的是地址值所以此时phone2和phone1的地址值一样操作同一片空间中的数据所以修改一个对象的数据会影响另一个对象 四、成员变量和局部变量的区别 1.定义位置不同* 成员变量类中方法外 局部变量方法之中或者参数位置 2.初始化值不同* 成员变量有默认值不用手动赋值可以直接使用 局部变量没有默认值必须手动先赋值才能使用 3.作用范围不同* 成员变量作用于整个类 局部变量只作用于自己所在的方法其他方法用不了 4.内存位置不同 成员变量在堆中跟着对象走 局部变量在栈中跟着方法走 5.生命周期不同 成员变量随着对象的产生而产生随着对象的消失而消失 局部变量随着方法的调用而产生随着方法的调用完毕而消失 五、练习 定义一个类MyDate属性有year、month、day 在定义一个Citizen公民类属性有nameString类型birthdayMyDate类型idcardstring类型为这三个属性赋值然后将值取出 自定义生日类型
//自定义生日类型
public class Demo71Object08MyDate {int year;int month;int day;
}
自定义公民类
//自定义公民类
public class Demo72Object09Citizen {//姓名String name; //默认值null// 生日 Mydate类型// Mydate属于自定义类型引用数据类型// 这种类型要操作之前必须要赋值// 这种自定义对象需要new对象赋值Demo71Object08MyDate birthday; //默认值null//身份证String idcard; //默认值null
}
主函数 public static void main(String[] args) {Demo72Object09Citizen citizen new Demo72Object09Citizen();citizen.name 张三;citizen.idcard 04214047;citizen.birthday new Demo71Object08MyDate();/*Stringbuildercitizen.birthday获取的是Mydate对象再去点year获取的是Mydate对象中的year链式调用*/citizen.birthday.year 2002;citizen.birthday.month 11;citizen.birthday.day 4;System.out.println(citizen.name , citizen.birthday.year 年 citizen.birthday.month 月 citizen.birthday.day 日 学号: citizen.idcard);} 运行结果 给自定义的类型引用数据类型赋值需要new对象String比较特殊可以直接赋值 六、总结