Java 面向对象(一)
一、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 面向对象(一)相关推荐
- java面向对象-------静态初始化块
1.构造方法用于对象的初始化!静态初始化块,用于类的初始化操作,在静态初始化块中不能直接访问非static成员. package java面向对象; /** * 测试静态初始化块 */public c ...
- JAVA面向对象-----final关键字
JAVA面向对象-–final关键字 1:定义静态方法求圆的面积 2:定义静态方法求圆的周长 3:发现方法中有重复的代码,就是PI,圆周率.1:如果需要提高计算精度,就需要修改每个方法中圆周率. 4: ...
- Java学习笔记二十五:Java面向对象的三大特性之多态
Java面向对象的三大特性之多态 一:什么是多态: 多态是同一个行为具有多个不同表现形式或形态的能力. 多态就是同一个接口,使用不同的实例而执行不同操作. 多态性是对象多种表现形式的体现. 现实中,比 ...
- 12 Java面向对象之多态
JavaSE 基础之十二 12 Java面向对象之多态 ① 多态的概念及分类 多态的概念:对象的多种表现形式和能力 多态的分类 1. 静态多态:在编译期间,程序就能决定调用哪个方法.方法的重载就表现出 ...
- 猫抓老鼠-Java面向对象特点梳理
我们先设计一个猫抓老鼠的小游戏: ⊙猫和老鼠都有名字和体重两种属性,猫有抓老鼠的方法,对应的老鼠则有逃跑的方法. ⊙首先游戏的结果是猫抓住了老鼠或者老鼠逃跑了,对于这两种情况,我们用体重来区分,若猫的 ...
- java面向对象特征及阐述,Java面向对象四个特征
Java面向对象有四个特征:抽象.封装.继承.多态.其中封装.继承.多态又被称为Java的基本特征. 抽象: Java中会把客观事物抽象成一个类.类就是封装了数据以及操作这些数据的代码逻辑实体.用字符 ...
- 20155328 《Java程序设计》 实验二(Java面向对象程序设计) 实验报告
20155328 <Java程序设计> 实验二(Java面向对象程序设计) 实验报告 单元测试 一.单元测试和TDD 编程时需理清思路,将编程需求等想好,再开始编.此部分可用伪代码实现. ...
- 第7篇-JAVA面向对象Ⅲ
第7篇-JAVA面向对象Ⅲ 每篇一句 :任何值得去的地方,都没有捷径 初学心得: 温故而知新 (笔者:JEEP/711)[JAVA笔记 | 时间:2017-04-09| JAVA面向对象 Ⅲ] 1.J ...
- 谈谈java面向对象之抽象,手把手带你搞定java面试之面向对象
计算机语言晦涩难懂,打算利用通俗易懂的文字带领大家学习java基础.如果文中有什么错误的地方,欢迎大家在评论区指正,免得我误人子弟. Question:当面试JAVA开发岗位的时候,面试官最爱问的问题 ...
- java面向对象程序设计第三版_JAVA面向对象程序设计之创建型设计模式
[本文详细介绍了JAVA面向对象程序设计中的创建型设计模式,欢迎读者朋友们阅读.转发和收藏!] 1 基本概念 1.1 什么是设计模式 设计模式( Design pattern )是一套被反复使用.多数 ...
最新文章
- Chemistry.AI | 基于图卷积神经网络(GCN)预测分子性质
- python将控制台输出保存至文件
- 使用curl获取Location:重定向后url
- Sql server管理工具SQLManagementStudio2008的安装
- VTK:图片之ImageIslandRemoval2D
- jquery 字符串查找_JQuery、Vue等考点
- golang odbc mysql_go语言通过odbc操作Access数据库的方法
- git 本地项目关联线上仓库报错 failed to push some refs to “XXX”
- python3.6字典有序_为什么Python3.6字典变得有序了?
- MySQL只有.frm文件恢复表结构
- 数字逻辑电路课程设计报告
- 【建模算法】基于遗传算法求解TSP问题(Python实现)
- 101个著名的管理学及心理学效应(2)
- 奥维地图显示no data(-5)解决
- android 驱动开发教程,Android驱动开发入门
- sparkStreaming算子之transform
- 散文是指以文字为创作、审美对象的文学艺术体裁
- 基于Socket编程的网络聊天室
- ARToolKit在visual studio2013(win10)的环境配置
- 云帆大数据学院_hadoop 2.2.0源码编译