初识对象,对象的创建以及方法的定义规则
目录
- 什么是对象
- 什么是类
- 定义属性
- 定义方法
- 方法的定义
- 总结
- 课后作业
什么是对象
对象:现实世界中客观存下的实体都是对象(只要你能看得见、摸得着的物体都是对象),由属性和方法组成。万事万物皆对象
什么是类
类:具有相同属性和方法的多个对象的集合。
- 类是对象的抽象,对象是类的具体
- 类是对象的模板,对象是类的特例
package cn.bdqn.demo01;public class Dog {//定义属性public String name;public int health;public int love;//定义方法public void print(){System.out.println("狗的昵称:"+name+",健康值:"+health+",亲密度:"+love);}}
定义属性
数据类型 属性名;
package cn.bdqn.demo01;public class School {//定义属性: 数据类型 属性名;String schoolName;String address;int year;String phoneNumber;
public void printInfo(){System.out.println("学校名称:"+schoolName+",地址:"+address+",创办年数:"+year+",联系电话:"+phoneNumber);}}
定义方法
访问权限修饰符 返回值类型 方法名([参数列表]){
方法体
}
创建School类对象
类名 对象名 = new 类名();
package cn.bdqn.demo01;public class SchoolTest {public static void main(String[] args) {//创建School类对象//类名 对象名 = new 类名();School school1 = new School();//给对象的属性赋值 对象名.属性名 = 数据;school1.schoolName = "魔法学院";school1.address = "安徽合肥";school1.year = 100;school1.phoneNumber = "13822556677";//对象调用方法 对象名.方法名();school1.printInfo();School school2 = new School();school2.schoolName = "北大青鸟";school2.address = "合肥创投产业园";school2.year = 30;school2.phoneNumber = "13288889999";school2.printInfo();System.out.println(school2.schoolName);}}
访问权限修饰符:描述的是方法的作用范围,主要有public(公共)、默认的(什么都不写)、protected(受保护的)、private(私有的)
返回值类型:调用方法返回结果的类型,可以是8大基本类型,也可以是3大引用类型,还可以没有返回值,写void
方法名:方法的名称,小驼峰命名法,做到见名知意
参数列表:方法可以需要你传递参数,也可以不需要参数,当方法有参数的时候,可以有一个参数,也可以有多个参数,多个参数之间使用,隔开
方法体:方法实现功能的具体代码体现
package cn.bdqn.demo02;public class Teacher {//定义属性String name;String professionalDirection;String teachingCourses;int teachingExperience;//定义方法public void print(){System.out.println(name);System.out.println("专业方向:"+professionalDirection);System.out.println("教授课程:"+teachingCourses);System.out.println("教龄:"+teachingExperience);}
}
package cn.bdqn.demo02;public class TeacherTest {public static void main(String[] args) {//创建Teacher类对象Teacher teacher1 = new Teacher();teacher1.name = "王老师";teacher1.professionalDirection = "计算机";teacher1.teachingCourses = "使用Java语言理解程序逻辑";teacher1.teachingExperience = 5;//调用print()方法teacher1.print();}}
方法的定义
根据方法是否有返回值,将方法定义为:
无返回值的方法
返回值类型写void,在调用无返回值的方法,不需要用任何变量来接收有返回值的方法
1)返回值可以是任意的基本数据类型和任意的引用数据类型,调用有返回值的方法,需要用对应类型的变量来接收,或者直接将返回值输出
2)有返回值的方法需要在方法体内通过return关键字将结果返回回去
根据方法是有有参数列表,将方法定义为:
无参方法
方法名后面的()中没有任何参数有参方法
方法名后面的()中有参数,参数的个数可以是1个或者多个,参数的类型可以是基本数据类型,也可以是引用数据类型
*
综上所述,方法的种类主要有以下几种:无返回值的无参方法
无返回值的有参方法
有返回值的无参方法
有返回值的有参方法
方法调用的2个原则:
- 方法需要什么参数,就按照定义的规则传递参数----》要什么给什么
- 方法返回什么类型的结果,就用什么类型的变量接收(也可以直接输出返回的结果)----》给什么接什么
package cn.bdqn.demo03;public class Demo01 {public void test1(){System.out.println("我是没有返回值的方法");}public String test2(){String str = "hello java";return str;}//num1和num2是定义方法时表示的参数名称,是一个形式参数,简称形参public void test3(int num1,int num2){System.out.println("你传递的两个参数数据是:"+num1+","+num2);}public int test4(int num1,int num2,int num3){return num1+num2+num3;}
}
package cn.bdqn.demo03;public class Demo01Test {public static void main(String[] args) {//创建Demo01的对象,通过对象来调用Demo01类中的test1()和test2()方法Demo01 d1 = new Demo01();d1.test1();String result =d1.test2();System.out.println(result);System.out.println(d1.test2());d1.test3(10, 20);int a =100;int b =200;//调用有参方法的时候,传递的a和b是实际参数,简称实参,形参和实参的名称不需要一样,但是数据类型要一样d1.test3(a, b);int result2 =d1.test4(100, 200, 185);System.out.println(result2);System.out.println(d1.test4(10, 20, 30));}}
对数组进行升序排序,遍历输出,复制操作
package cn.bdqn.demo04;public class ArraysMethod {// 定义一个方法实现对int类型的数组进行升序排序public static void sortUp(int[] array) {for (int i = 0; i < array.length - 1; i++) {for (int j = 0; j < array.length - 1 - i; j++) {if (array[j] > array[j + 1]) {int temp = array[j];array[j] = array[j + 1];array[j + 1] = temp;}}}}// 定义一个方法将数组输出public static void showArrays(int[] array) {for (int i = 0; i < array.length; i++) {if (i == 0) {System.out.print("[");}if (i != array.length - 1) {System.out.print(array[i] + ",");} else {System.out.print(array[i]);}if (i == array.length - 1) {System.out.println("]");}}}// 定义一个方法实现对数组进行复制操作public static int[] copyArray(int[] arr, int length) {int[] newArray = new int[length];// 要先判断length的值和arr.length值的大小if (length <= arr.length) {for (int i = 0; i < length; i++) {newArray[i] = arr[i];}} else {for (int i = 0; i < arr.length; i++) {newArray[i] = arr[i];}}return newArray;}/*定义一个方法实现对已经升序排序的数组中插入一个元素*public static int[] insertArray(int[] nums,int number){* * * * return nums;* *}*/}
package cn.bdqn.demo04;public class Test {public static void main(String[] args) {int[] num1 = {11,56,98,76,46,33,19,85};//遍历前输出数组ArraysMethod.showArrays(num1);ArraysMethod.sortUp(num1);//遍历后输出数组ArraysMethod.showArrays(num1);int[] newNums =ArraysMethod.copyArray(num1, 18);ArraysMethod.showArrays(newNums);}}
- 方法在同一个类中,可以直接调用,不需要通过对象名调用
实践:小于18岁大于60岁免20块门票。
package cn.bdqn.demo06;public class Visitor {//定义一个方法,实现根据年龄输出门票价格public void price(String name,int age){if(age>=18&&age<=60){System.out.println(name+"的年龄为"+age+",门票价格:20元");}else{System.out.println(name+"的年龄为"+age+",门票免费");}}}
package cn.bdqn.demo06;import java.util.Scanner;public class Test {public static void main(String[] args) {Scanner sc = new Scanner(System.in);Visitor v = new Visitor();String name =null;System.out.println("输入姓名:");name =sc.next();while(!name.equals("n")){System.out.println("输入年龄:");int age =sc.nextInt();v.price(name, age);System.out.println("输入姓名:");name =sc.next();}System.out.println("退出程序");}}
总结
1)访问权限修饰符 返回值类型 方法名([参数列表]){
方法体
}
2)创建School类对象:类名 对象名 = new 类名();
3)方法的种类主要有以下几种:无返回值的无参方法,无返回值的有参方法,有返回值的无参方法,有返回值的有参方法。
4)无返回值的方法
返回值类型写void,在调用无返回值的方法,不需要用任何变量来接收
5)有返回值的方法
- 返回值可以是任意的基本数据类型和任意的引用数据类型,调用有返回值的方法,需要用对应类型的变量来接收,或者直接将返回值输出
- 有返回值的方法需要在方法体内通过return关键字将结果返回回去
6)无参方法
方法名后面的()中没有任何参数
7)有参方法
方法名后面的()中有参数,参数的个数可以是1个或者多个,参数的类型可以是基本数据类型,也可以是引用数据类型
8)方法调用的2个原则:
- 方法需要什么参数,就按照定义的规则传递参数----》要什么给什么
- 方法返回什么类型的结果,就用什么类型的变量接收(也可以直接输出返回的结果)----》给什么接什么
课后作业
01:写一个人的类
属性:名字,性别,年龄
方法:(1)自我介绍的方法(2)吃饭的方法
创建一个对象“张三”
02:写一个汽车类:
属性:品牌;车长;颜色;价格;
方法:跑的方法
创建五个对象:“捷达”,“宝马”,“劳斯莱斯”,“科鲁兹”,“迈锐宝”
03:写一个课程类:
属性:课程名;学时;任课老师;
创建五个对象:“c语言”,“Java编程”,“php网络编程”,“c++”,“数据结构”
04: 0——————>X
|
|
| . P(X,Y)
|
|
Y
定义一个类,用于描述坐标点
(1) 具有计算当前点到原点距离的功能
(2) 求到任意一点(m,n)的距离
(3) 具有坐标点显示功能,显示格式(x,y)
05:定义一个圆类型
提供显示圆周长功能的方法
提供显示圆面积的方法
06:编程创建一个Box类,在其中定义三个变量表示一个立方体的长、宽和高,定义一个方法求立方体的体积。创建一个对象,求给定尺寸的立方体的体积。
07:定义一个计算机类:
属性:品牌;价格;颜色;
方法:(1)编程的功能 (2)上网的功能
实例化两个对象:“lenovo”;“hasee”
08:编写一个类Student,代表学员,要求:
(1)具有属性:学号、姓名、年龄、性别、专业。
(2)具有方法:自我介绍,负责输出该学员的姓名、年龄、性别以及专业。
09:Java对内存的划分分为几类?
划分一:运行时数据区域; 程序计数器; Java虚拟机栈; 本地方法栈; 堆; 方法区;运行时常量池; 对象访问。
划分二:栈区、堆区、静态区、代码区。
10:堆和栈的区别?
堆:存放的是引用数据类型;
栈: 存放的是基本数据类型;容量小、速度快、适合存放小型数据。
初识对象,对象的创建以及方法的定义规则相关推荐
- 创建电脑对象,电脑对象有关机和开机方法(静态对象构造方法)
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...
- (1)定义圆Circle类,包含radius半径属性,求面积方法,求周长方法,返返回圆对象的详细信息的方法(2)在测试类中创建长度为5的Circle[]数组,用来装5个圆对象
import java.util.Random;class Circle{double radius;double area;double perimeter;// 面积public void ger ...
- python:掌握类的基本方法。定义一个Circle类,根据圆的半径求周长和面积。 再由Circle类创建2个圆对象,其半径分别为5和10,要求输出各自的周长和面积
掌握类的基本方法.定义一个Circle类,根据圆的半径求周长和面积. 再由Circle类创建2个圆对象,其半径分别为5和10,要求输出各自的周长和面积 请在[python数据分析之禅]gzh后台,回复 ...
- 什么是创建对象java_什么是对象,以及对象的创建和方法
js中的对象分为两种,一种是面向对象另一种是遍历对象. 面向对象在js里有两bai个层次的含义,第一种是会使用面向对象函数:第二种是构造面向对象函数. js也是面向对象中的一种写法,不过相对于java ...
- 面向过程和面向对象的设计思想、java类、Java类的定义、java对象、对象的创建和使用、类和对象、变量分类、方法分类、构造方法、方法的重载
1.面向过程和面向对象的设计思想 面向过程:procedure oriented programming 缩写 POP. 分析出解决问题所需要的步骤,然后把步骤一步一步实现. 面向过程直接关注流程. ...
- Ajax--概述、xhr对象的常用属性和方法、xhr的常用事件、xhr对象发送POST请求、xhr对象发送GET请求、xhr对象的兼容性问题、数据交换格式(XML、JSON)
一.概述 1.1 发展历程 在开始之前先来看一下Ajax的工作原理吧,如下图所示: Ajax全称Asynchronous javascript and xml(异步 JavaScript 和 XML) ...
- selenium提取数据之driver对象的常用属性和方法
selenium提取数据之driver对象的常用属性和方法 在使用selenium过程中,实例化driver对象后,driver对象有一些常用的属性和方法 driver.page_source 当前标 ...
- select 下拉菜单Option对象使用add(elements,index)方法动态添加
2019独角兽企业重金招聘Python工程师标准>>> 原生js 的add函数为下拉菜单增加选项 1.object.add(oElement [, iIndex]) index 可选 ...
- python中ndarray如何生成单独的记事本文件_NumPy-快速处理数据--ndarray对象--数组的创建和存取...
本文摘自<用Python做科学计算>,版权归原作者所有. NumPy为Python提供了快速的多维数组处理的能力,而SciPy则在NumPy基础上添加了众多的科学计算所需的各种工具包,有了 ...
最新文章
- UA MATH571A R语言回归分析实践 一元回归2 NBA球员的工资
- Linux 磁盘分区、格式化、目录挂载
- ios 获取沙盒文件名_获取IOS各种沙盒路径的方法
- ORA-28547 连接服务器失败,可能是Oracle Net 管理错误
- HTML的块级元素和行级元素的标签列表
- linux 命令行管理,Linux命令行界面下的用户和组的管理
- Python提取彩色图像的二值化边缘
- 怎样才能办理信用卡成功?
- WEB 端批量移动设备管理控制工具 STF 的环境搭建和运行
- c++ 单引和双引的区别
- NLP学习—14.Pointer Generator Network(指针)及代码实现
- IDEA+MAVEN+testNG(reportNG)
- 小D课堂 - 零基础入门SpringBoot2.X到实战_第8节 数据库操作之整合Mybaties和事务讲解_32..SpringBoot2.x持久化数据方式介绍...
- 闽什么什么院第二课堂网课破解-----微信内置浏览器
- 【软件需求工程】北理的恶龙们——软件需求规格说明
- 变形金刚之雷曼疯狂兔子:抽水马桶变身
- QQ微信可以上网,但是浏览器上不了网怎么办?
- 《Spring Boot极简教程》第1章 Spring Boot史前简述
- 嵌入式1553B总线开发板的应用
- python语音验证码识别_基于Python的手机语音验证码api调用代码实例