1.什么是面向对象

面向过程:我应该干什么 重在过程  事务执行者* 挑选一个电脑(台式)* 1.挑一个cpu Intel Core i7* 2.挑一个主板  华硕* 3.挑一个显卡  七彩虹  影驰  9600GT* 4.挑一个显示器 
面向对象:重点在对象 我该找谁干什么  指挥者* 找一个懂电脑的人 帮你去买电脑* 更贴近人的思维(懒人思维)

2.面向对象的好处

面向对象的好处:* 1.把复杂的问题 简单化* 2.从事务的执行者 转化为 指挥者* 3.更贴近人的思维(懒人思想)

3.类与对象

类和对象* java中  最基本的单位 就是类* 类:对抽象事物的描述(模板)* 对象:用类创建出来的就是对象(具体的事物)

4.成员变量与局部变量的区别

成员变量 和 局部变量 区别 1.在类中位置不同:成员变量:在类中方法外。局部变量:在方法定义中或者方法声明上。2.在内存中的位置不同:成员变量:在堆内存。  局部变量:在栈内存。3.生命周期不同:成员变量:随着对象的创建而存在,随着对象的消失而消失。 局部变量:随着方法的调用而入栈,随着方法的调用完毕而消失。4.作用域 :  成员变量:整个类. 局部变量:方法中.5.初始化值不同:成员变量:跟堆内存中,有默认值初始化。局部变量:没有默认值初始化,必须定义,赋值,然后才能使用。6.注意事项:局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则。 

5.创建不同包下的同名类

package com.lanou3g;import com.lanou4g.Test;public class Demo03 {public static void main(String[] args) {//创建一个Person对象Person p1 = new Person();p1.fun();//创建不同包下的同名类对象//需要指定完整的包名来创建对象//一般情况下:不建议写同名类com.lanou4g.Person p2 = new com.lanou4g.Person();p2.fun();//创建不包不同名的类Test test = new Test();}
}

6.参数是引用数据类型和数据是引用数据类型

public class Demo04 {//参数是基本数据类型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();//打印的是刘斌 24.因为进行的是地址的传递}
}

不多说 上图!!!

不比比 再来一张

7.匿名对象

 匿名对象:没有名字的对象* 1.在方法传参数时使用* 2.只调用一下方法(不赋值的情况下)
public static void setNameAndAge(Person p, String name, int age) {p.name = name;p.age = age;p.sayHi();}public static void main(String[] args) {// 创建两个对象 并赋值// 将重复代码抽成一个方法Person p1 = new Person();p1.name = "wanglong";p1.age = 16;p1.sayHi();Person p2 = new Person();setNameAndAge(p2, "menglomg", 18);//使用匿名对象 当方法参数//好处:减少代码量setNameAndAge(new Person(), "kun", 20);//匿名对象 也是对象 也可以赋值属性 调用成员方法new Person().name = "xin";new Person().age = 30;new Person().sayHi();//打印结果是 null 0. 因为开辟的是三块区域//只调用方法可以使用匿名对象//测试方法的时候可能会使用new Person().fun();}

8.封装

封装* 写方法就是封装的一种* 隐藏代码的实现和属性 不能随意修改* 需要开发访问方式(方法)  获取 修改* 好处:* 1.提高代码的复用性* 2.提高代码的安全性
 私有的(权限修饰符)* private 私有的* 被private 修饰的属性 只能本类中访问

9.构造方法

构造方法:对对象的成员变量进行初始化* 写法:* 1.没有返回值类型(连void都不用写)*2.构造方法方法名 要与 类名 完全一致
//创建一个pen对象//构造方法 是系统帮你调用//只要你创建对象 系统就会帮你调用构造方法//构造方法只会执行一遍Pen pen = new Pen();pen.sayHi();//测试有参的构造方法//当你传参数 系统就会去找你有参的构造方法调用Pen p1 = new Pen("钢笔", "绿色");p1.sayHi();

10.创建一个标准的java bean 类

类中写什么?* 成员变量* 无参构造方法* 有参构造方法* 成员方法* set/get方法

11.一个标准的Book类示范

public class Homework {public static void main(String[] args) {Book book = new Book();Book book2 = new Book("少年阿宾", 25);book.setName("平凡的世界");System.out.println("我是成员方法,这本书的名字是:"+book.getName());}
}class Book{private String name;private int price;Book(){this.name = "小王子";this.price = 95;System.out.println("我是Book类的无参构造方法,我的书名是:"+name+",我的价格是:"+price);}Book(String name,int price){this.name = name;this.price = price;System.out.println("我是Book类的有参数构造方法,我的名字是:"+name+",我的价格是"+price);}public void read(){System.out.println("我是成员方法,这本书的名字是:"+name);}public void setName(String name){this.name = name;}public String getName(){return name;}

跟着IT彭于晏学JAVA之面向对象相关推荐

  1. 跟着IT彭于晏学java之java入门01

    我的java之旅 day1 1.Java六大特点: 1.1. 简单(相对于C语言 指针(*p)地址),Java弱化指针的概念,使用引用的概念解释指针*p  **p 1.2. 面向对象(更贴近人的思维) ...

  2. 阿里短信发送(跟着宝哥学java)

    1 短信发送 1.1 注册阿里云 1.2 查找短信服务:创建签名 1.3 创建模板 1.4 获取accessKey和accesssKeySecret 1.5 项目中引入依赖 <!--短信发送的依 ...

  3. 零基础学java(6)——面向对象的基本特征

    第六章 面向对象的基本特征 目录 第六章 面向对象的基本特征 6.1 封装 6.2 构造器 6.3 关键字this 6.4 包 6.5 eclipse的使用 6.6 面向对象的基本特征之二:继承 6. ...

  4. 跟着楠哥学java(javase笔记)

    JAVA介绍(4.14) JDK JDK(Java Development Kit Java开发工具包) JDK是提供给Java开发人员使用的,其中包含了java开发工具,也包含了JRE.所以安装了J ...

  5. 手把手教我班小姐姐学java之面向对象

    真的光看不练假把式,编程主要还是打代码,就像我班这位小姐姐一样,看的不少,视频也看了,书也读了,就是写不出程序来. 木的办法,只能小白我来帮忙了!!! 例题1-简单继承 创建GeometricObje ...

  6. jdbc(跟着宝哥学java:jdbc) jdbc概念,铁打步骤,jdbc封装,预编译对象,sql攻击

    1 概念 jdbc:java database connection 通过java连接数据库 sun公司为java连接所有数据库提供的一组接口; jdbc驱动:各个数据库厂家为自己的数据库根据jdbc ...

  7. 【跟着达叔学Java】系列文章更新

    我会将整个Java系列课程以文章的形式更新出来.有兴趣的小伙伴可以关注我学习哦. 目前已经更新的有 Dockder Oracle RabbitMQ

  8. day18_补充01(跟着宝哥学java:se) ++混合运算、内部类、设计模式、枚举、1.8新特性、正则表达式、

    1 自增自减混合运算 System.out.println(1+2+3/2+3+1*4+5);//从左到右 运算符有优先级int a,b; a=1; a++;//a=(int)(a+1); Syste ...

  9. 【Java】跟着小丛学Java第三阶段:Java核心API

    异常处理 什么是异常 在编写Java应用程序时,可能会遇到各种类型的错误,例如输入无效的数据或尝试访问不存在的文件等.当这种错误发生时,Java会抛出一个异常,这可能会导致程序崩溃或产生不可预测的结果 ...

最新文章

  1. acrh17华硕固件_华硕全新手游路由器RT-AC85P首发:雷达定向传输
  2. 有线网卡和无线网卡同时上网 优先级切换的设置方法
  3. 如何在 C# 8 中使用 Channels
  4. 前端学习(2788):完成图片商品数据页面渲染
  5. 基于句式元学习的Twitter分类
  6. 模拟生态圈_电源工程师必备求生技能——经典20种模拟电路
  7. 周鸿祎:数字孪生时代 网络攻击影响力更甚核弹
  8. 【spring】spring的事务传播性 hibernate/jpa等的事务隔离性
  9. ILSpy For MacOsX
  10. ubuntu上安装 ibus Google拼音输入法解决中文输入问题
  11. 我国的省级行政区中,哪些邻省最多,哪些最少?
  12. 四种常见的XML解析方式
  13. unity android gyro,Unity - 陀螺仪 - 仅绕一轴旋转
  14. 计算机基础技能培养,计算机基础技能培养大纲(非计算机专业).doc
  15. 31岁,断奶两年,我与乳腺癌擦肩而过
  16. JZOJ 3337. 【NOI2013模拟】wyl8899的TLE【暴力】
  17. [语义分割]CTNet: Context-based Tandem Network for Semantic Segmentation
  18. 大鱼吃小鱼html代码,Flash游戏--大鱼吃小鱼(一)
  19. C# 获取电脑序列号和主板序列号
  20. android21 下载,21下载2021安卓最新版_手机app官方版免费安装下载_豌豆荚

热门文章

  1. win远程桌面如何使用双屏幕显示
  2. linux强制退出命令行_在Linux命令行上使用强制
  3. 墨西哥大众VW Mexico常见的几种label
  4. 【Python-19】Python语言基础和Python环境准备与安装
  5. 如何安排时间,读更多的书
  6. RFID天线 基础知识
  7. 1.6 - CPU组成
  8. Matplotlib图形中文无法命名解决步骤
  9. serialize方法
  10. 开发EPUB电子书制作下载网站