NIUCLOUD是一款SaaS管理后台框架多应用插件+云编译。上千名开发者、服务商正在积极拥抱开发者生态。欢迎开发者们免费入驻。一起助力发展! 广告
## 类与对象 对象是存在的具体实体,具有明确定义的特征和行为。万物皆为对象,对象因我关注而产生。在软件系统中,我们用类来模拟现实生活中的实体。**类是对象的抽象,对象是类的实例。** ## 课程代码 ~~~java package com.demo2; /** * 学生类 * @author 一教室 * */ public class Student { // 成员变量(有时候也可以看做为全局变量) ——(静态的)属性 //[修饰符] 数据类型 成员变量名 [= 默认值]; //在语法格式里,中括号有时表示中括号中的内容可有可无 //姓名 public String name; //性别 public String sex; //年龄 public int age; //身高 public double height = 175.0;//默认值 //体重 public double weight = 70.5; //学号 public String code; //地址 private String address; //近视 private boolean myopia; //学生证 public static String stuIdCard = "qw124";//它此时已经不是成员变量了,而是类变量或静态变量。 //方法 ——(动态的)行为 /*[修饰符] 返回值 方法名([参数列表]) { 方法体语句; [返回值] }*/ //如果在方法内部使用return,明确的返回某一项数据,在方法定义的时候就需要将方法定义中的返回值设为该数据的类型。 //如果没有,则使用void关键字,表示该方法没有返回值 /** * 听课 * @param className * @param teacherName */ public String visitClass(String className, String teacherName) {//形参列表,这个参数指的是形式参数 int a = 5;//局部变量:在大括号(不是类的大括号)内部定义的变量,叫做局部变量,它的作用范围只局限于这个大括号内 return this.name + "正在上" + teacherName + "的" + className + "课";//该处的this指的正在调用该方法的对象 } /** * 回答问题 * @param question * @return */ public String answerQuestion(String question) { String answer = question + "的回答是:xxxyyy"; return answer; } /** * 打印听课方法 * @param className * @param teacherName */ public void printVisitClass(String className, String teacherName) { System.out.println(this.visitClass(className,teacherName)); } /** * 吃饭 * 在静态的方法中无法引用非静态的内容 * @param count * @return */ public static String eatFood(int count) { return "学生们今天吃了" + count + "顿饭" + ",用了公共学生卡" + stuIdCard /*+ name*/; } //构造器:相当于一个工具,是为了该类能够更好的生成一个个的对象 //构造器相当于一个特殊的方法 //如果不手动的生成构造器,系统会自动的给我们添加一个无参的构造器 /*[修饰符] 类名 ([参数列表]) { 方法体语句; }*/ //注意!注意!注意!构造器是类创建对象的唯一途径 public Student() { } public Student(String name1,String sex1) { this.name = name1;//该处的this指的是之后将要通过该构造器创建出来的对象 this.sex = sex1; } public Student(String name, String sex, int age, double height, double weight, String code) { this.name = name; this.sex = sex; this.age = age; this.height = height; this.code = code; this.weight = weight; } public static void main(String[] args) { //如何通过类来创建对象,我们使用的new关键字+构造器实现 //语法:类类型 变量名 = new 类构造器; //创建对象 Student caokai = new Student(); //使用对象:给对象的属性进行赋值 caokai.age = 25; caokai.code = "j121-001"; caokai.name = "曹凯"; caokai.sex = "男"; //使用对象:调用对象的方法 System.out.println(caokai.visitClass("java", "李老师"));//String a = caokai.visitClass(xxx,xxx); //使用对象:调用对象的属性 System.out.println("caokai的名字" + caokai.name); System.out.println("caokai的身高" + caokai.height + "cm"); System.out.println("caokai的体重" + caokai.weight + "kg"); Student xuChunLin = new Student(); xuChunLin.age = 24; xuChunLin.code = "j121-002"; xuChunLin.name = "徐春林"; xuChunLin.sex = "男"; System.out.println(xuChunLin.visitClass("java", "李老师")); System.out.println("xuChunLin的名字" + xuChunLin.name); System.out.println("xuChunLin的身高" + xuChunLin.height + "cm"); System.out.println("xuChunLin的体重" + xuChunLin.weight + "kg"); Student luWenXin = new Student("陆文鑫","男"); luWenXin.height = 185.0; System.out.println("luWenXin的名字" + luWenXin.name); System.out.println("luWenXin的性别" + luWenXin.sex); luWenXin.printVisitClass("java", "李老师"); System.out.println("luWenXin的身高" + luWenXin.height + "cm"); System.out.println("luWenXin的体重" + luWenXin.weight + "kg"); luWenXin.address = "南通市崇川区"; System.out.println(luWenXin.myopia); } } ~~~ ~~~java package com.demo2; /** * 该类是对学生类的使用说明演示 * @author 一教室 * */ public class StudentUse { //定义一个类类型的成员变量 public Student stu; StudentUse() { } public static void main(String[] args) { Student gaoJunNan = new Student("高峻楠", "男", 24, 175.0, 60.0, "j121-004"); System.out.println(gaoJunNan.name); //gaoJunNan.address;错误代码:private 修饰的成员变量和方法不能够在其他类中被访问 StudentUse stuUse = new StudentUse(); System.out.println(stuUse.stu); gaoJunNan.stuIdCard = "1232"; //stuUse.stuIdCard;静态变量不能被创建出来的对象访问调用,只能被类调用 System.out.println(Student.stuIdCard); System.out.println(Student.eatFood(3)); /** * static 修饰的变量或方法是类所特有的变量和方法, * 类是指对象的特征模板,所以类所特有的东西,对象也可以获取到,但是不建议通过对象去获取访问类变量和类方法 */ System.out.println(gaoJunNan.eatFood(3)); System.out.println(gaoJunNan.stuIdCard); System.out.println(Student.stuIdCard); //Student xuShuang = new Student("徐爽", "男", 24, 176, 60.0, "j121-005"); Student xuShuang = null; xuShuang = new Student("徐爽", "男", 24, 176, 60.0, "j121-005"); //这就是为什么不建议通过对象调用修改类变量和类方法 System.out.println(xuShuang.stuIdCard);//1232 } } ~~~