一、Java面向对象

java是一个面向对象语言,有句话说:“java一切皆对象”。

我们运行代码,需要建立一个类,类里面定义一个main函数,才能运行;

我们用到的Scanner和Random需要用到java里面写好的类,这操作也叫导包。

因为有各种各样写好的、性能优越的类存在,使得java使用起来更加轻松,大多时候我们并非学习java的语法,而是学习该如何使用这个类,这时候jdk的api(查看各种库的方法的作用)就显得比较重要了,可以自己进行下载,作为一个编程必备的软件

1.1何为面向对象

由属性和方法构成的类为对象,即类就是对象

在生活中的对象
现实中的对象多数来自于“模板”,程序中的对象也应该具有“模板”。

汽车为模板的时候叫对象,根据模板实现出来的一辆汽车叫实例化

二、对象定义与创建

2.1定义

//类名开头需要大写
public class 类名{
​ 类属性 – 特征
​ 类方法 – 行为
​ //类方法: public 属性 名字(参数){ //如 public int Num(int i){return 1};
}

public class Dog {     //类名要大写String bread;int age;String sex;String furColor;public void information(){System.out.println(bread + "今年"+age+"岁,"+"性别为" + sex+",毛色为"+furColor);}public void eat(){System.out.println(bread + "eating...");}public void sleep(){System.out.println(bread+ "sleeping...");}
}
2.2创建

类名 名字 = new 类名()

new就是让计算机知道,给后面的类(写在new后面的类名)开辟一个空间,如果有多个new,那么他们就开辟多个空间,他们不相干

public class Demo01 {public static void main(String[] args) {Dog dog1 = new Dog();Dog dog2 = new Dog();Dog dog3 = new Dog();}
}
//我们开辟了三个属于Dog的空间,也就是实现了三个Dog,他们间是不相干的
2.2.1实例化Dog

上面的也是实例化,但只里面的属性并没有赋值和方法调用,下面认真实例化一遍

public class DogText {public static void main(String[] args) {//实例化Dog,赋值给dogDog dog = new Dog();//dog属性赋值dog.bread = "泰迪"; //品种dog.age = 8;dog.sex = "公";dog.furColor = "棕色";//dog方法调用dog.information();dog.eat();dog.sleep();System.out.println("--------------------------------------");//实例化另一个Dog,赋值给dog2Dog dog2 = new Dog();// The value of the local variable dog2 is not used//dog2赋值dog2.breed = "哈士奇";dog2.age = 2;dog2.sex = "母";dog2.furColor = "灰白";//dog2方法调用dog2.information();dog2.eat();dog2.sleep();}
}结果:
泰迪今年8岁,性别为公,毛色为棕色
泰迪eating...
泰迪sleeping...
---------------
哈士奇今年2岁,性别为母,毛色为灰白
哈士奇eating...
哈士奇sleeping...

三、构造方法(重点)

构造方法,是当类实例化之后即立马执行的

上面的例子中,如果一个个赋值是非常麻烦的,但如果在实例化对象时候就把值传入进去,那么就方便得多了

构造方法:
类名(){代码块}

public class Dog {String bread;int age;String sex;String furColor;public Dog(String bread, int age, String sex, String furColor) {this.bread = bread;this.age = age;this.sex = sex;this.furColor = furColor;}public void information(){System.out.println(bread + "今年"+age+"岁,"+"性别为" + sex+",毛色为"+furColor);}public void eat(){System.out.println(bread + "eating...");}public void sleep(){System.out.println(bread+ "sleeping...");}
}

在上面构造函数中,this.属性指的是本类的属性,因为传入的参数名字和类里面的属性名字相同了,如果不加this将不会赋值(可以自己尝试一下)

调用

public class Demo02 {public static void main(String[] args) {Dog dog = new Dog("泰迪", 18, "公", "红色");dog.information();dog.sleep();dog.eat();}
}
结果:
泰迪今年18岁,性别为公,毛色为红色
泰迪sleeping...
泰迪eating...

构造方法既然是方法,那它也是遵循方法重载的定理的。

在一般时候,如果写了一个有参的构造方法,那无参的构造方法最好写上,不然有些情况会报错。

Java 面向对象(一)相关推荐

  1. java面向对象-------静态初始化块

    1.构造方法用于对象的初始化!静态初始化块,用于类的初始化操作,在静态初始化块中不能直接访问非static成员. package java面向对象; /** * 测试静态初始化块 */public c ...

  2. JAVA面向对象-----final关键字

    JAVA面向对象-–final关键字 1:定义静态方法求圆的面积 2:定义静态方法求圆的周长 3:发现方法中有重复的代码,就是PI,圆周率.1:如果需要提高计算精度,就需要修改每个方法中圆周率. 4: ...

  3. Java学习笔记二十五:Java面向对象的三大特性之多态

    Java面向对象的三大特性之多态 一:什么是多态: 多态是同一个行为具有多个不同表现形式或形态的能力. 多态就是同一个接口,使用不同的实例而执行不同操作. 多态性是对象多种表现形式的体现. 现实中,比 ...

  4. 12 Java面向对象之多态

    JavaSE 基础之十二 12 Java面向对象之多态 ① 多态的概念及分类 多态的概念:对象的多种表现形式和能力 多态的分类 1. 静态多态:在编译期间,程序就能决定调用哪个方法.方法的重载就表现出 ...

  5. 猫抓老鼠-Java面向对象特点梳理

    我们先设计一个猫抓老鼠的小游戏: ⊙猫和老鼠都有名字和体重两种属性,猫有抓老鼠的方法,对应的老鼠则有逃跑的方法. ⊙首先游戏的结果是猫抓住了老鼠或者老鼠逃跑了,对于这两种情况,我们用体重来区分,若猫的 ...

  6. java面向对象特征及阐述,Java面向对象四个特征

    Java面向对象有四个特征:抽象.封装.继承.多态.其中封装.继承.多态又被称为Java的基本特征. 抽象: Java中会把客观事物抽象成一个类.类就是封装了数据以及操作这些数据的代码逻辑实体.用字符 ...

  7. 20155328 《Java程序设计》 实验二(Java面向对象程序设计) 实验报告

    20155328 <Java程序设计> 实验二(Java面向对象程序设计) 实验报告 单元测试 一.单元测试和TDD 编程时需理清思路,将编程需求等想好,再开始编.此部分可用伪代码实现. ...

  8. 第7篇-JAVA面向对象Ⅲ

    第7篇-JAVA面向对象Ⅲ 每篇一句 :任何值得去的地方,都没有捷径 初学心得: 温故而知新 (笔者:JEEP/711)[JAVA笔记 | 时间:2017-04-09| JAVA面向对象 Ⅲ] 1.J ...

  9. 谈谈java面向对象之抽象,手把手带你搞定java面试之面向对象

    计算机语言晦涩难懂,打算利用通俗易懂的文字带领大家学习java基础.如果文中有什么错误的地方,欢迎大家在评论区指正,免得我误人子弟. Question:当面试JAVA开发岗位的时候,面试官最爱问的问题 ...

  10. java面向对象程序设计第三版_JAVA面向对象程序设计之创建型设计模式

    [本文详细介绍了JAVA面向对象程序设计中的创建型设计模式,欢迎读者朋友们阅读.转发和收藏!] 1 基本概念 1.1 什么是设计模式 设计模式( Design pattern )是一套被反复使用.多数 ...

最新文章

  1. Chemistry.AI | 基于图卷积神经网络(GCN)预测分子性质
  2. python将控制台输出保存至文件
  3. 使用curl获取Location:重定向后url
  4. Sql server管理工具SQLManagementStudio2008的安装
  5. VTK:图片之ImageIslandRemoval2D
  6. jquery 字符串查找_JQuery、Vue等考点
  7. golang odbc mysql_go语言通过odbc操作Access数据库的方法
  8. git 本地项目关联线上仓库报错 failed to push some refs to “XXX”
  9. python3.6字典有序_为什么Python3.6字典变得有序了?
  10. MySQL只有.frm文件恢复表结构
  11. 数字逻辑电路课程设计报告
  12. 【建模算法】基于遗传算法求解TSP问题(Python实现)
  13. 101个著名的管理学及心理学效应(2)
  14. 奥维地图显示no data(-5)解决
  15. android 驱动开发教程,Android驱动开发入门
  16. sparkStreaming算子之transform
  17. 散文是指以文字为创作、审美对象的文学艺术体裁
  18. 基于Socket编程的网络聊天室
  19. ARToolKit在visual studio2013(win10)的环境配置
  20. 云帆大数据学院_hadoop 2.2.0源码编译

热门文章

  1. 不良事件总结怎么写_一份年度护理不良事件报告是怎样写成的
  2. 靠谱的录屏软件 + mp4格式转换软件
  3. 在vue里面使用eval()函数
  4. 树莓派最新最快更新源2020.06.06
  5. 网易云信投身远程医疗「超高清时代」,让优质医疗惠及更多人
  6. 上传文件资料并生成缩略图
  7. 实战PyQt5: 086-图元类QGraphicsItem
  8. enumerate的用法:
  9. Java/计算银行利率
  10. 英语词根、词根、前缀、后缀大全