1、 / 输出这个人的名字,通过.连接符访问 System.out.println(p.name); System.out.println(p.age); p.name = yasuo; p.gender = 男 p.age = 20; p.hight = 180; p.weight=70; p.race=汉族 p.diamond=高富帅 / 声明时默认值是null System.out.println(p1); System.out.println(=); / nullpointexception System.out.println(p1.name); 方法public class Stude
2、nt public String name; public String gender; public int age; / 实例属性/普通属性 public int hight; / 类属性,不建议使用 public static String race; / 方法代表学生具有的行为,具有一种共性 public void sleep()sleep public int walk()walk / 结束了方法,并返回一个 整数值 return 10000; public String eat()eat return 吃的榴莲 /* * 实例方法 * param gameName(形參) * 遊戲
3、名稱 */ public void playGame(String gameName) System.out.println(gameName); * param level(形參) * 遊戲等級 public void playGame(String gameName, int level) System.out.println(gameName + + level); / 类方法 public static void test() 类方法方法的调用/ 將學生類导入到当前文件中,这样我们就可以操作这个学生类import com.cognizant.model.Student;/* * 方法属
4、性的调用都是通过实例去调用的,这里的实例是指我们创建出来的,不可能是空 * 否则会报空指针异常 * author tzhangpublic class Main public static void main(String args) / 創建一個學生實例 Student stu = new Student(); / 属性的访问 System.out.println(stu.name); stu.name = 魏子安 / 方法的访问,调用walk方法,执行walk方法体,执行结束后, / 再回到此处,也就是调用的地方, / 方法的执行结果就是返回了他return部分的内容 int return
5、Val = stu.walk(); / 方法的直接调用 stu.sleep(); stu.walk(); System.out.println(returnVal);方法执行结束 System.out.println(stu.eat(); / 按住ctrl ,移動鼠標到方法調用的名字上,單擊鼠標左鍵 / 王者榮耀-实参 stu.playGame( String game = int lev = 1; / game lev是实参 stu.playGame(game, lev); / 类方法的调用,可以直接通过类.方法名调用,不需要通过实例调用 Student.test(); / 不建议使用,底层
6、调用会转换为通过类的方式调用 stu.test(); System.out.println(Student.race);构造器 构造器最大的用处就是在创建对象时执行初始化,初始化类中的属性 如果程序员没有为Java 类提供任何构造器,则系统会为这个类提供一个无参的构造器。 一旦程序员提供了自定义的构造器,则系统不再提供默认的构造器。/ 无参构造器,如果有参数,有参构造器,参数称为形参 / 参数的来源,一般为实例属性 / 构造器的名字,就是类名 public Student() / 构造器重载 public Student(String name,String gender) this.name
7、 = name; this.gender = gender; public Student(String name,String gender,int age,int height) / 调用的是含有2个参数的构造器 this(name,gender); this.age = age; this.height = height;对象this的引用this 关键字总是指向调用该方法的对象.1.构造器中引用该构造器执行初始化的对象 2.在方法中引用调用该方法的对象3.this用于区别属性和局部变量注: this 不能用在有static 修饰的方法中(原因)方法的重载 * 与上面下面相邻的方法都是方
8、法重载,方法重载只关注 * 1、同一个类中 * 2、方法名相同 * 3、形参列表不同 * 其他都不管(如返回值类型) * param level * return public int playGame(int level) return level;递归 * 求阶乘的递归 * param i private static int factorial(int i) / 考虑i 3 * 2 * 1 / 4 * factorial(3)-4 * 3 * factorial(2)-4 * 3 * 2 * factorial(1) / 4 * 3 * 2 * 1长度可变的参数 * * param su
9、bject * 科目 * param grade * 长度可变的形参(0-无穷),必须在参数的最后一个,数据类型后面加上三个点, * 后面跟着参数名就行,grade接收参数后是一个数组 public void score(String subject,int. grade) System.out.println(subject); System.out.println(grade.length); for (int i:grade) System.out.print(i + System.out.println();局部变量局部变量可分为三种:1. 形参2. 方法局部变量与成员变量不同的是除了
10、形参外,其他局部变量都必须显式地初始化public class Main1 static String str = hello String str = world System.out.println(str);/world 局部变量仅在方法内有效,当方法执行完成时,局部变量便会自动销毁成员变量方法外,类内部定义局部变量与成员变量他们定义的位置?局部变量与成员变量他们的作用域?引用传递值传递(基本数据类型)public class ValTran / 值传递-传递的是变量值-基本数据类型 int y = 20; baseTran(y); System.out.println(y);/ 20
11、/ 值传递(引用传递)-传递的是地址值-引用数据类型(String除外) Student stu = new Student(李白, referenceTran(stu);/ 杜甫 static void baseTran(int y ) y = y + 10; static void referenceTran(Student stu ) stu.name=杜甫类的get,set 方法会使用Split方法使用/ private只能在当前类中可以访问,访问方式 . private String name; private String gender; private int age; priv
12、ate int height; public Student(String name, String gender, int age, int height) super(); / alt + shift + s / 获取属性值 public String getName() return name; / 修改或设置属性 public void setName(String name) public String getGender() return gender; public void setGender(String gender) public int getAge() return
13、age; public void setAge(int age) public int getHeight() return height; public void setHeight(int height) / toString方法输出学生基本信息 Override public String toString() name= + name + , gender= + gender + , age= + age + , height= + height; stu.setName( stu.setGender( stu.setAge(20); stu.setHeight(180); Syste
14、m.out.println(stu.toString(); / 修改学生信息 / 获取年龄 System.out.println(stu.getAge(); / 构造器初始化数据 Student stu1 = new Student(李清照女,20,180); System.out.println(stu1.toString(); / String的split分割字符串,得到一个字符串数组 Scanner scanner = new Scanner(System.in);请输入信息:姓名 性别 年龄 身高 String str = scanner.nextLine(); String info
15、 = str.split( if (info.length = 4) / 字符串怎样转换为整数 String s = 123 int x = Integer.parseInt(s); Student stu2 = new Student(info0,info1, Integer.parseInt(info2),Integer.parseInt(info3); System.out.println(stu2.toString();作业:编写一个应用程序绘制一个如下的操作菜单并实现功能(定义一个类学生表示学生)nextLine(),默认一共有100个学生,一维数组-一维对象(student)数组*
16、 | 1. 增加学生 | | 2. 显示学生 | | 3. 修改学生 | | 4. 删除学生 | | 5. 查找学生 | | 6. 退出程序 | | 请输入选择(1-6): | *1、Scanner 学号 姓名 班级2、数组-对象数组-Student 10 2=5当前有多少位学生,一共多少页,默认显示显示第一页数据,提供功能,输入页数时,显示指定页数的数据3、构造器实现学生信息的初始化4、添加学生就是赋值,删除学生就是赋值(null)5、修改学生,遍历学生是否存在-yes-set方法修改学生信息6、显示学生,遍历数组,toString方法输出学生信息7、退出,循环次数不固定,所以使用while循环,控制while循环的准入条件实现退出提示: * 主要完成功能 *public class Tool public void outputMenu() public void add(Student stu) public void update() public void delete(String sno) public void selectBySno(String sno) public void selectAll() public class Demo / 控制主逻辑,方法流程
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1