类与对象、类的私有成员与公共成员
创建对象
创建对象的语法:new类名();
new是一个运算符,专门负责对象的创建。类是模板,通过一个类,可以创建n多个对象。
package leiyuduixian_02;
class Student1 {
//成员变量
String name;
private int age;
//提供get.set方法
public void setAge(int a) {
if (a > 100 || a < 0) {
System.out.println("你输入的年龄有误!");
} else {
age=a;
System.out.println("年龄为:"+a);
}
}
public int getAge() {
return age;
}
public void show() {
System.out.println(name+","+age);
}
}
public class private_1 {
public static void main(String[] args) {
//创建对象
Student1 s=new Student1();
//给成员变量赋值
s.name="贾璐璐";
s.setAge(19);
s.show();
}
}
private的使用
private关键字【修饰成员(成员变量和成员方法)】
针对private成员变量,如果需要被其它类使用:
1、提供"get变量名()“方法,用于获取成员变量的值,方法用public修饰。
2、提供"set变量名(参数)”,用于设置成员变量的值,方法用public修饰。
```java
package leiyuduixian_02;
class Student3{
private String name;
private int age;
//构造方法
// public Student3() {
// System.out.println("无参构造方法");
//}
public Student3() {} //此为系统默认的构造方法
public Student3(String name) {
this.name=name;
}
public Student3(int age) {
this.age=age;
}
public Student3(String name,int age) {
this.name=name;
this.age=age;
}
public void show() {
System.out.println(name+","+age);
}
}
package leiyuduixian_02;
public class 构造方法的测试类 {
public static void main(String[] args) {
//public Student3(String name)
Student3 s=new Student3("贾璐璐");//由有参(原来为String name)变为无参构造,需手动打出系统默认构造方法
s.show();
//public Student3(int age)
Student3 s2=new Student3(19);
s2.show();
// public Student3(String name,int age)
Student3 s3=new Student3("贾璐璐",19);
s3.show();
}
}
运行结果:D:\environment\jdk1.8.0_101\bin\java.exe "-javaagent:D:\IntelliJ IDEA 2020.3\lib\idea_rt.jar=61053:D:\IntelliJ IDEA 2020.3\bin" -Dfile.encoding=UTF-8 -classpath D:\environment\jdk1.8.0_101\jre\lib\charsets.jar;D:\environment\jdk1.8.0_101\jre\lib\deploy.jar;D:\environment\jdk1.8.0_101\jre\lib\ext\access-bridge-64.jar;D:\environment\jdk1.8.0_101\jre\lib\ext\cldrdata.jar;D:\environment\jdk1.8.0_101\jre\lib\ext\dnsns.jar;D:\environment\jdk1.8.0_101\jre\lib\ext\jaccess.jar;D:\environment\jdk1.8.0_101\jre\lib\ext\jfxrt.jar;D:\environment\jdk1.8.0_101\jre\lib\ext\localedata.jar;D:\environment\jdk1.8.0_101\jre\lib\ext\mysql-connector-java-8.0.15.jar;D:\environment\jdk1.8.0_101\jre\lib\ext\nashorn.jar;D:\environment\jdk1.8.0_101\jre\lib\ext\sunec.jar;D:\environment\jdk1.8.0_101\jre\lib\ext\sunjce_provider.jar;D:\environment\jdk1.8.0_101\jre\lib\ext\sunmscapi.jar;D:\environment\jdk1.8.0_101\jre\lib\ext\sunpkcs11.jar;D:\environment\jdk1.8.0_101\jre\lib\ext\zipfs.jar;D:\environment\jdk1.8.0_101\jre\lib\javaws.jar;D:\environment\jdk1.8.0_101\jre\lib\jce.jar;D:\environment\jdk1.8.0_101\jre\lib\jfr.jar;D:\environment\jdk1.8.0_101\jre\lib\jfxswt.jar;D:\environment\jdk1.8.0_101\jre\lib\jsse.jar;D:\environment\jdk1.8.0_101\jre\lib\management-agent.jar;D:\environment\jdk1.8.0_101\jre\lib\plugin.jar;D:\environment\jdk1.8.0_101\jre\lib\resources.jar;D:\environment\jdk1.8.0_101\jre\lib\rt.jar;D:\untitled\out\production\untitled leiyuduixian_02.构造方法的测试类
贾璐璐,0
null,19
贾璐璐,19
Process finished with exit code 0
this的使用
解决局部变量隐藏成员变量 用this
this:代表所在类的对象引用
方法被哪个对象调用,this就代表哪个对象。
public Student3() {
System.out.println(“无参构造方法”);此为系统默认的构造方法
由有参(原来为String name)变为无参构造,需手动打出系统默认构造方法。