做瞹网站,php 做网站,电商培训机构哪家好,宣传片制作公司简介一、面向过程与面向对象面向过程: 从事务执行者的角度思考问题,我该干什么 重点在过程----事务流程面向对象: 从事务的指挥者角度思考问题,我应该找谁干什么 重点在对象面向对象的优点:1.将复杂问题简单化2.从事务的执行者转化为事物的指挥者3.更贴近人的思维(懒人思想)二、类…一、面向过程与面向对象面向过程: 从事务执行者的角度思考问题,我该干什么 重点在过程----事务流程面向对象: 从事务的指挥者角度思考问题,我应该找谁干什么 重点在对象面向对象的优点:1.将复杂问题简单化2.从事务的执行者转化为事物的指挥者3.更贴近人的思维(懒人思想)二、类和对象类是Java中最基本的单位,是一类抽象事物的集合 对抽象事物的描述(模板)对象: 用类创建出来的具体的事物就是对象抽象描述类:类中的属性是指成员变量类中的行为是指成员方法//属性 (成员变量 实例变量)//书写位置: 类中,方法外//行为 (方法) 和Java中函数的声明一样,只是不写static关键字//书写位置: 类中创建一个类: 关键字 class 类名(大驼峰命名) { }例如: 创建一个学生类属性: 姓名 年龄 性别行为: 吃饭 睡觉 打游戏class Student{String name;int age;String gender;// 方法---成员方法、实例方法public void eat(){System.out.println(吃饭);}public void sleep(){System.out.println(睡觉);}public void playGame(String game){System.out.println(打 game);}}创建对象: 类名 对象名 初值;例如: 创建一个学生类的对象Student stu new Student();// 使用 对象名.属性名 值; 对对象的属性进行赋值和取值stu.name IT彭于晏;stu.age 16;stu.gender 男;// 调用成员方法 对象名.方法名();stu.eat();stu.sleep();stu.playGame(毒奶粉);stu.sayHi(); //在类中声明一个sayHi方法,哪个对象调用该方法,打印的就是哪个对象的属性三、成员变量与局部变量成员变量与局部变量的区别:1.书写位置不同:成员变量: 类中方法外局部变量: 方法中或方法上(参数位置)2.在内存中的表现不同:成员变量: 堆内存中局部变量: 栈内存中3.生命周期不同:成员变量: 随着对象进入堆内存中创建,随着对象的销毁而销毁局部变量: 随着方法的调用而入栈,随着方法的结束而销毁4.作用域不同:成员变量: 整个类中局部变量: 方法中5.初始值不同:成员变量: 跟堆内存一样,有默认的初始值 0 null局部变量: 默认没有初值 不给初值编译时会报错 (局部变量声明时必须带有初值)四、同名类在同一个项目中可以有同名的类,创建在不同的包下创建不同包下的同名类,需要指定完整的包名来创建对象一般情况下不建议写同名类例如: 在包3和包4下各创建一个person类//创建一个包3类的person对象Person p1 new Person( );//在继续创建一个包4类下的person对象com.bao3.Person p2 new com.bao3.Person( ); // 需要指定完整的包名注意:在方法中基本数据类型的传递是值 引用数据类型则是地址的传递 (要什么类型给什么类型)五、匿名对象匿名对象: 没有名字的对象1. 一般 在方法传参的时候调用2. 只调用一下方法(不赋值的情况下)使用匿名对象当方法的参数 可以减少代码量,方便使用public static void main(String[] args) {// 创建两个Person对象 并赋值// 将重复代码 抽成一个方法Person p1 new Person();p1.name linqingxia;p1.age 16;p1.sayHi();Person p2 new Person();setNameAndAge(p2, wangzuxian, 25);// 使用匿名对象 当方法的参数setNameAndAge(new Person(), maoqiu, 20);// 匿名对象 也是对象 也可以赋值 调用成员方法new Person().name xin;new Person().age 30;new Person().sayHi(); // 注意: 获取不到xin 30----每new一次在堆内存中新生成一块空间// 只调用方法可以使用匿名对象// 测试方法的时候 可能会使用new Person().fun();}六、封装与构造方法封装Java中 写 方法、函数 就是封装的一种封装相当于隐藏了代码的实现和属性 不能随意修改需要开放访问的接口(方法 方式) 来获取或修改封装的代码优点:1.提高了代码的复用性2.提高了代码的安全性关键字 中的 权限修饰符-- private 私有的被private修饰的属性 只能本类中访问java bean 规范(java的实体类创建出来的对象)1.声明成员变量 都需要 私有化2.给每个成员变量提供set和get方法3.必须提供 无参的构造方法class Phone{private String phoneName;// 获取方法public String getPhoneName(){return phoneName;}// 修改方法public void setPhoneName(String phoneName){this.phoneName phoneName;// 关键字 this 代表的是本类的对象// this.成员变量 获取本类的成员变量// this.成员变量 哈哈; 给本类的成员变量赋值// this.成员方法 调用本类的成员方法// 谁调用了这个方法 谁就是this}}命名规范获取get 成员变量名(首字母大写)修改set 成员变量名(首字母大写)标准写法 set方法 是没有返回值的构造方法构造方法: 对对象的成员变量 进行初始化写法:1. 没有返回值位置(void也不用写)2. 构造方法的方法名 要与 类名 完全一致构造方法是系统帮你调用的只要你创建对象 系统就会自动调用构造方法构造方法 只会执行一遍class Pen {/** 类中书写顺序* 1.成员变量* 2.构造方法---无参的 有参的* 3.成员方法---sayHi之类的 自己写的* 4.set/get方法*/private String name;private String color;// 构造方法(无参)public Pen() {// 初始化成员变量(给成员变量赋值)this.name 圆珠笔;this.color 红色;System.out.println(我是pen类的无参构造方法);}// 有参构造方法(构造方法的重载)// 为了在创建对象的同时 给成员变量赋值public Pen(String name,String color) {this.name name;this.color color;System.out.println(我是有参的构造方法);}}// 介绍自己的方法public void sayHi() {String name linaiang;// 使用this 可以区分 成员变量 和 局部变量System.out.println(this.name this.color);}