示例代码:
package Demo06; /* 学生类 */ public class Student { // 成员变量 String name; // 公共变量 private int age; // 私有变量 // 提供get/ set方法 public int getAge() { return age; } public void setAge(int age) { this.age = age; } // 成员方法 public void show() { System.out.println(name + " -- " + age); } } package Demo06; // Student 测试类 public class StudentDemo { public static void main(String[] args) { // 创建对象 Student s = new Student(); // 给成员变量赋值 s.name = "熊本熊"; s.setAge(19); // 调用show()方法 s.show(); } } 需求:定义标准的学生类,要求name和age使用private修饰,并提供set和get方法以及便于显示 数据的show方法,测试类中创建对象并使用,最终控制台输出 熊本熊,20 示例代码:
package Demo06.Demo01; /* **需求**:定义标准的学生类,要求name和age使用private修饰, * 并提供set和get方法以及便于显示 * 数据的show方法,测试类中创建对象并使用,最终控制台输出 林青霞,30 */ public class Student { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public void show() { System.out.println(name + "--" + age); } } package Demo06.Demo01; /* studen类的测试类 */ public class StudentDemo { public static void main(String[] args) { // 创建对象 Student s = new Student(); // 使用变量 s.setName("熊本熊"); s.setAge(19); // 使用方法 s.show(); } }this修饰的变量用于指代成员变量,其主要作用是(区分局部变量和成员变量的重名问题) 方法的形参如果与成员变量同名,不带this修饰的变量指的是形参,而不是成员变量 方法的形参没有与成员变量同名,不带this修饰的变量指的是成员变量
public class Student { private String name; private int age; public void setName(String name) { this.name = name; } public String getName() { return name; } public void setAge(int age) { this.age = age; } public int getAge() { return age; } public void show() { System.out.println(name + "," + age); } }this代表当前调用方法的引用,哪个对象调用的方法,this就代表哪一个对象 示例代码:
public class StudentDemo { public static void main(String[] args) { Student s1 = new Student(); s1.setName("林青霞"); Student s2 = new Student(); s2.setName("张曼玉"); } }构造方法是一种特殊的方法 作用:创建对象 Student stu = new Student(); 格式: public class 类名{ 修饰符 类名( 参数 ) { } } 功能:主要是完成对象数据的初始化 示例代码:
package Demo06.Demo02; public class Student { private String name; private int age; // 构造方法 public Student() { System.out.println("无参构造方法。"); } public void show() { System.out.println(name + "," + age); } } package Demo06.Demo02; /* Student类的测试类 */ public class StudentDemo { public static void main(String[] args) { // 创建对象 Student s = new Student(); s.show(); } }*构造方法的创建 如果没有定义构造方法,系统将给出一个默认的无参数构造方法 如果定义了构造方法,系统将不再提供 默认的构造方法 *构造方法的重载 如果自定义了带参构造方法,还要使用无参数构造方法,就必须再写一个无参数构造方法 *推荐的使用方式 无论是否使用,都手工书写无参数构造方法 重要功能! 可以使用带参构造,为成员变量进行初始化 示例代码:
package Demo06.Demo03; /* Student类 无参构造方法 有参构造方法 */ public class Student { private String name; private int age; public Student() {} public Student(String name) { this.name = name; } public Student(int age) { this.age = age; } public Student(String name, int age) { this.name = name; this.age = age; } public void show() { System.out.println(name + "," + age); } } package Demo06.Demo03; /* 测试类: Student类 无参构造方法 有参构造方法 用途:主要用于初始化对象。 */ public class StudentDemo { public static void main(String[] args) { // 创建对象 Student s1 = new Student(); s1.show(); Student s2 = new Student("熊本熊"); s2.show(); Student s3 = new Student(19); s3.show(); Student s4 = new Student("熊本熊", 19); s4.show(); } }需求:定义标准学生类,要求分别使用空参和有参构造方法创建对象,空参创建的对象通过 setXxx赋值,有参创建的对象直接赋值,并通过show方法展示数据。 示例代码:
package Demo06.Demo04; /* 需求:定义标准学生类,要求分别使用空参和有参构造方法创建对象,空参创建的对象通过 setXxx赋值,有参创建的对象直接赋值,并通过show方法展示数据。 */ public class Student { // 成员变量 private String name; private int age; // 构造方法 public Student() {} public Student(String name, int age) { this.name = name; this.age = age; } // 成员方法 public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public void show() { System.out.println(name + "," + age); } } package Demo06.Demo04; /* Student标准类的测试类 */ public class StudentDemo { public static void main(String[] args) { // 有参构造方法 Student s1 = new Student("熊本熊", 20); s1.show(); // 无参构造方法 使用成员方法赋值 Student s2 = new Student(); s2.setName("熊大"); s2.setAge(19); s2.show(); } }什么是API API (Application Programming Interface) :应用程序编程接口 java中的API 指的就是 JDK 中提供的各种功能的 Java类,这些类将底层的实现封装了起来,我们不需要关心这 些类是如何实现的,只需要学习这些类如何使用即可,我们可以通过帮助文档来学习这些API如何 使用。
1 打开帮助文档 2 找到索引选项卡中的输入框
3 在输入框中输入Random 或者其他类
4 看类在哪个包下
看类的描述
看构造方法
看成员方法
String 类代表字符串,Java 程序中的所有字符串文字(例如“abc”)都被实现为此类的实例。也就是 说,Java 程序中所有的双引号字符串,都是 String 类的对象。String 类在 java.lang 包下,所以使用的 时候不需要导包!
字符串不可变,它们的值在创建后不能被更改 虽然 String 的值是不可变的,但是它们可以被共享 字符串效果上相当于字符数组( char[] ),但是底层原理是字节数组( byte[] )
常用的构造方法
方法名说明public String()创建一个空白字符串对象,不包含任何内容public String(char[] chs)根据字符数组的内容,来创建字符串public String(byte[] bys)根据字节数组的内容,来创建字符串String = “abc”;直接赋值的方式创建字符串,内容是 abc使用:
package Demo06.StringDemo05; public class StringDemo01 { public static void main(String[] args) { // | public String() | 创建一个空白字符串对象,不包含任何内容 String s1 = new String(); System.out.println(s1); // | public String(char[] chs) | 根据字符数组的内容,来创建字符串 char[] arr1 = {'熊', '本', '熊'}; String s2 = new String(arr1); System.out.println(s2); // | public String(byte[] bys) | 根据字节数组的内容,来创建字符串 byte[] arr2 = {65, 66, 67}; String s3 = new String(arr2); System.out.println(s3); // | String = "abc"; | 直接赋值的方式创建字符串,内容是 abc | String s4 = "abc"; System.out.println(s4); } } 通过 new 创建的字符串对象,每一次 new 都会申请一个内存空间,虽然内容相同,但是地址值不同
以“”方式给出的字符串,只要字符序列相同(顺序和大小写),无论在程序代码中出现几次,JVM 都 只会建立一个 String 对象,并在字符串池中维护
定义标准学生类,属性包括姓名和年龄,要求分别使用空参和有参构造方法创建对象,空参创建的对象通过setXxx赋值,有参创建的对象直接赋值,并通过show方法展示数据。
package Demo06.StringDemo05; /* 定义标准学生类,属性包括姓名和年龄,要求分别使用空参和有参构造方法创建对象, 空参创建的对象通过setXxx赋值,有参创建的对象直接赋值,并通过show方法展示数据。 */ public class Student { private String name; private int age; public Student() { } public Student(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public void show() { System.out.println(name + " - " + age); } } package Demo06.StringDemo05; /* 测试类: */ public class StudentDemo02 { public static void main(String[] args) { // 有参构造方法 Student s1 = new Student("熊本熊", 19); s1.show(); // 无参构造方法 Student s2 = new Student(); s2.setName("熊大"); s2.setAge(20); s2.show(); } } 请定义教师类(Teacher),属性包括姓名和工号。要求分别使用空参和有参构造方法创建对象,空参创建的对象通过setXxx赋值,有参创建的对象直接赋值。定义教课(teach)方法,输出“工号为xxx的xxx老师正在讲课”。
package Demo06.StringDemo05; /* 请定义教师类(Teacher),属性包括姓名和工号。要求分别使用空参和 有参构造方法创建对象,空参创建的对象通过setXxx赋值,有参创建的 对象直接赋值。定义教课(teach)方法,输出“工号为xxx的xxx老师正在讲课”。 */ public class Teacher { private String name; private int job; public Teacher() { } public Teacher(String name, int job) { this.name = name; this.job = job; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getJob() { return job; } public void setJob(int job) { this.job = job; } // 方法定义教课(teach)方法输出“工号为xxx的xxx老师正在讲课”。 public void teach(){ System.out.println("工号为" + job + "的" + name + "老师正在讲课。"); } } package Demo06.StringDemo05; /* 测试类: */ public class TeacherDemo01 { public static void main(String[] args) { // 有参构造方法 Teacher t1 = new Teacher("熊大", 2000); t1.teach(); // 无参数构造方法 Teacher t2 = new Teacher(); t2.setName("熊二"); t2.setJob(1992); t2.teach(); } }