目录

  • 什么是对象
  • 什么是类
  • 定义属性
  • 定义方法
    • 方法的定义
  • 总结
  • 课后作业

什么是对象

对象:现实世界中客观存下的实体都是对象(只要你能看得见、摸得着的物体都是对象),由属性和方法组成。万事万物皆对象

什么是类

:具有相同属性和方法的多个对象的集合。

  • 类是对象的抽象,对象是类的具体
  • 类是对象的模板,对象是类的特例
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();}}

方法的定义

根据方法是否有返回值,将方法定义为

  1. 无返回值的方法
    返回值类型写void,在调用无返回值的方法,不需要用任何变量来接收

  2. 有返回值的方法
    1)返回值可以是任意的基本数据类型和任意的引用数据类型,调用有返回值的方法,需要用对应类型的变量来接收,或者直接将返回值输出
    2)有返回值的方法需要在方法体内通过return关键字将结果返回回去

根据方法是有有参数列表,将方法定义为

  • 无参方法
    方法名后面的()中没有任何参数

  • 有参方法
    方法名后面的()中有参数,参数的个数可以是1个或者多个,参数的类型可以是基本数据类型,也可以是引用数据类型
    *
    综上所述,方法的种类主要有以下几种:

  • 无返回值的无参方法

  • 无返回值的有参方法

  • 有返回值的无参方法

  • 有返回值的有参方法

方法调用的2个原则:

  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)有返回值的方法

  1. 返回值可以是任意的基本数据类型和任意的引用数据类型,调用有返回值的方法,需要用对应类型的变量来接收,或者直接将返回值输出
  2. 有返回值的方法需要在方法体内通过return关键字将结果返回回去

6)无参方法
方法名后面的()中没有任何参数

7)有参方法
方法名后面的()中有参数,参数的个数可以是1个或者多个,参数的类型可以是基本数据类型,也可以是引用数据类型

8)方法调用的2个原则:

  1. 方法需要什么参数,就按照定义的规则传递参数----》要什么给什么
  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:堆和栈的区别?
堆:存放的是引用数据类型;
栈: 存放的是基本数据类型;容量小、速度快、适合存放小型数据。

初识对象,对象的创建以及方法的定义规则相关推荐

  1. 创建电脑对象,电脑对象有关机和开机方法(静态对象构造方法)

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

  2. (1)定义圆Circle类,包含radius半径属性,求面积方法,求周长方法,返返回圆对象的详细信息的方法(2)在测试类中创建长度为5的Circle[]数组,用来装5个圆对象

    import java.util.Random;class Circle{double radius;double area;double perimeter;// 面积public void ger ...

  3. python:掌握类的基本方法。定义一个Circle类,根据圆的半径求周长和面积。 再由Circle类创建2个圆对象,其半径分别为5和10,要求输出各自的周长和面积

    掌握类的基本方法.定义一个Circle类,根据圆的半径求周长和面积. 再由Circle类创建2个圆对象,其半径分别为5和10,要求输出各自的周长和面积 请在[python数据分析之禅]gzh后台,回复 ...

  4. 什么是创建对象java_什么是对象,以及对象的创建和方法

    js中的对象分为两种,一种是面向对象另一种是遍历对象. 面向对象在js里有两bai个层次的含义,第一种是会使用面向对象函数:第二种是构造面向对象函数. js也是面向对象中的一种写法,不过相对于java ...

  5. 面向过程和面向对象的设计思想、java类、Java类的定义、java对象、对象的创建和使用、类和对象、变量分类、方法分类、构造方法、方法的重载

    1.面向过程和面向对象的设计思想 面向过程:procedure oriented programming 缩写 POP. 分析出解决问题所需要的步骤,然后把步骤一步一步实现. 面向过程直接关注流程. ...

  6. Ajax--概述、xhr对象的常用属性和方法、xhr的常用事件、xhr对象发送POST请求、xhr对象发送GET请求、xhr对象的兼容性问题、数据交换格式(XML、JSON)

    一.概述 1.1 发展历程 在开始之前先来看一下Ajax的工作原理吧,如下图所示: Ajax全称Asynchronous javascript and xml(异步 JavaScript 和 XML) ...

  7. selenium提取数据之driver对象的常用属性和方法

    selenium提取数据之driver对象的常用属性和方法 在使用selenium过程中,实例化driver对象后,driver对象有一些常用的属性和方法 driver.page_source 当前标 ...

  8. select 下拉菜单Option对象使用add(elements,index)方法动态添加

    2019独角兽企业重金招聘Python工程师标准>>> 原生js 的add函数为下拉菜单增加选项 1.object.add(oElement [, iIndex]) index 可选 ...

  9. python中ndarray如何生成单独的记事本文件_NumPy-快速处理数据--ndarray对象--数组的创建和存取...

    本文摘自<用Python做科学计算>,版权归原作者所有. NumPy为Python提供了快速的多维数组处理的能力,而SciPy则在NumPy基础上添加了众多的科学计算所需的各种工具包,有了 ...

最新文章

  1. UA MATH571A R语言回归分析实践 一元回归2 NBA球员的工资
  2. Linux 磁盘分区、格式化、目录挂载
  3. ios 获取沙盒文件名_获取IOS各种沙盒路径的方法
  4. ORA-28547 连接服务器失败,可能是Oracle Net 管理错误
  5. HTML的块级元素和行级元素的标签列表
  6. linux 命令行管理,Linux命令行界面下的用户和组的管理
  7. Python提取彩色图像的二值化边缘
  8. 怎样才能办理信用卡成功?
  9. WEB 端批量移动设备管理控制工具 STF 的环境搭建和运行
  10. c++ 单引和双引的区别
  11. NLP学习—14.Pointer Generator Network(指针)及代码实现
  12. IDEA+MAVEN+testNG(reportNG)
  13. 小D课堂 - 零基础入门SpringBoot2.X到实战_第8节 数据库操作之整合Mybaties和事务讲解_32..SpringBoot2.x持久化数据方式介绍...
  14. 闽什么什么院第二课堂网课破解-----微信内置浏览器
  15. 【软件需求工程】北理的恶龙们——软件需求规格说明
  16. 变形金刚之雷曼疯狂兔子:抽水马桶变身
  17. QQ微信可以上网,但是浏览器上不了网怎么办?
  18. 《Spring Boot极简教程》第1章 Spring Boot史前简述
  19. 嵌入式1553B总线开发板的应用
  20. python语音验证码识别_基于Python的手机语音验证码api调用代码实例

热门文章

  1. 密码学-计算机与网络空间安全概论
  2. win7浏览器主页修改不过来_Win7系统IE浏览器无法更改主页怎么解决?
  3. 安装Anaconda遇到问题--NSIS Error
  4. QOS 之 WRED
  5. 用计算机制作微课教学教案,微课教案设计
  6. 金融业移动管理驾驶舱产品功能介绍
  7. 智慧社区解决方案核心要点有哪些 智慧社区解决方案
  8. seo图片优化-详解alt标签的使用方法
  9. 为什么现在的人越来越不怕老板了? 老板和员工都要看
  10. Pandas把某一列日期的月份加减 月份前进或后退