-
关键字 private
* java提供一个关键字给我们使用:private 私有的 可以修饰成员变量,成员方法,构造方法 在同一个类中,private关键字不起作用,相当于透明的,同一个类中被private关键字修饰的成员可以随意访问
-
标准写法
-
标准写法1.0 成员变量:使用private关键字修饰 成员方法:针对每一个成员变量提供对应公共的setXxx()和getXxx() 自动生成get和set方法alt + inser
-
一个标准类的写法2.0版本 成员变量:使用private关键字修饰 成员方法:针对每一个成员变量都提供getXxx()和setXxx(),其中参数需要见明知意,需要使用this关键字辅助 show()方法:展示当前对象的所有成员变量值
-
一个标准类3.0写法 成员变量:私有化 构造方法:一个无参,一个所有参数 成员方法:setXxx()和getXxx() show方法:展示对象所有成员变量值
-
关键字 this
* java提供一个关键字:this this代表的是调用该方法的当前对象【谁调用了该方法,this就代表那个对象】
-
构造方法
* jvm在编译一个类的时候,若该类没有自己编写的构造方法的话,会默认提供一个无参,空方法体的构造方法 若我们自己提供了构造方法【无论是有参还是无参】,jvm都不会再提供了。 构造方法也可以发生重载【在同一个类中,构造方法可以有多个】
匿名对象,指的是没有名字的对象,只能用一次,后续无法继续使用该对象
标签:String,构造方法,void,私有化,private,age,public,name
From: https://www.cnblogs.com/wangxiaojian-lina/p/18431047
点击查看代码
//定义一个教师类
class Teacher {
public void fun2(){
System.out.println("好好学习,天天向上!");
}
}
class Demo2{
//当你今后看到一个类作为方法的参数的时候,将来调用时需要传入该类的对象【或者该类的子类对象】
public void method(Teacher t){ //Teacher t = new Teacher()
t.fun2();
}
}
public class TeacherDemo1 {
public static void main(String[] args) {
Demo2 d1 = new Demo2();
// Teacher t1 = new Teacher();
d1.method(new Teacher()); // new Teacher()
//匿名对象,指的是没有名字的对象,只能用一次,后续无法继续使用该对象
// d1.method(new Teacher());
}
}
- private关键字
可以修饰成员变量,成员方法,构造方法
在同一个类中,private关键字不起作用,相当于透明的,同一个类中被private关键字修饰的成员可以随意访问
在其他类里我们需要通过get函数获取,通过set函数赋值,后期直接通过构造方法进行对参数的赋值,如果有另外的要求需要
更改set函数
class Person {
private String name;
private int age;
public String getName(){
return name;
}
public void setName(String n){
name = n;
}
public int getAge(){
return age;
}
public void setAge(int i) {
if (i > 0 && i <= 130) {
this.age = i;
}else {
System.out.println("输入的年龄不合实际!");
}
}
private void fun1(){
System.out.println("好好学习,天天向上!");
}
public void show1(){
fun1();
}
}
public class PersonDemo {
public static void main(String[] args) {
//创建一个Person类的对象
Person p1 = new Person();
// System.out.println("姓名:" + p1.name);
// System.out.println("年龄:" + p1.age);
System.out.println("姓名:" + p1.getName());
System.out.println("年龄:" + p1.getAge());
System.out.println("-------------------------");
// p1.name = "江川";
// p1.age = 1800;
p1.setAge(1800);
p1.setName("江川");
// System.out.println("姓名:" + p1.name);
// System.out.println("年龄:" + p1.age);
System.out.println("姓名:" + p1.getName());
System.out.println("年龄:" + p1.getAge());
System.out.println("------------------------");
// p1.fun1();
p1.show1();
}
}
-
关键字:this
变量查找规则:就近原则
先在方法中查找变量,若找到就使用
若方法中没有该变量,去成员变量的位置上查找
如果没有this关键字,则无法调用set函数里的参数
public class Student {
// 成员变量
private String id;
// private String name;
// private int age;
//变量查找规则:就近原则
//先在方法中查找变量,若找到就使用
//若方法中没有该变量,去成员变量的位置上查找
public void setId(String id){
// id = id;
//我们的本意是将传进来的id赋值给成员变量的id
//java提供一个关键字:this
//this代表的是调用该方法的当前对象【谁调用了该方法,this就代表那个对象】
this.id = id;
}
public String getId(){
return id;
}
//自动生成get和set方法alt + insert
}
class Demo1{
public static void main(String[] args) {
//创建一个学生对象
Student s1 = new Student();
System.out.println("学号:"+s1.getId());
s1.setId("sj1001");
System.out.println("学号:"+s1.getId());
}
}
- 标准写法1.0代码演示
class Person {
private String name;
private int age;
public String getName(){
return name;
}
public void setName(String n){
name = n;
}
public int getAge(){
return age;
}
public void setAge(int i) {
if (i > 0 && i <= 130) {
age = i;
}else {
System.out.println("输入的年龄不合实际!");
}
}
private void fun1(){
System.out.println("好好学习,天天向上!");
}
public void show1(){
fun1();
}
}
public class PersonDemo {
public static void main(String[] args) {
//创建一个Person类的对象
Person p1 = new Person();
// System.out.println("姓名:" + p1.name);
// System.out.println("年龄:" + p1.age);
//因为是该类私有的无法直接调用,需要通过getname()方法来调用,
//且构造方法是无参的,默认姓名为null,age为0
System.out.println("姓名:" + p1.getName());
System.out.println("年龄:" + p1.getAge());
System.out.println("-------------------------");
// p1.name = "江川";
// p1.age = 1800;
//setName的作用是赋值后期可直接通过含参的构造方法进行赋值
p1.setAge(1800);
p1.setName("江川");
System.out.println("姓名:" + p1.getName());
System.out.println("年龄:" + p1.getAge());
System.out.println("------------------------");
// p1.fun1();
//无法访问,因为 这个方法是私有的
//但是我们可以通过媒介show1()方法来调用
p1.show1();
- 标准写法2.0演示
public class Student2 {
private String name;
private int age;
private String gender;
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 String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public void show() {
System.out.println("姓名:" + this.name + ", 年龄:" + this.age + ", 性别:" + this.gender);
}
}
class Demo02{
public static void main(String[] args) {
Student2 s1 = new Student2();
s1.setName("江川");
s1.setAge(18);
s1.setGender("男");
s1.show();
}
}
- 标准写法3.0演示
public class Student4 {
private String id;
private String name;
private int age;
Student4(){
}
Student4(String id,String name,int age){
this.id = id;
this.name = name;
this.age = age;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
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("学号:" + id + ", 姓名:" + name + ", 年龄:" + age);
}
}
class Demo4 {
public static void main(String[] args) {
//通过无参的构造方法创建对象,使用setXxx对成员变量赋值
// Student4 s1 = new Student4();
// s1.setName("江川");
// s1.setId("1001");
// s1.setAge(18);
// s1.show();
//直接通过有参的构造方法对成员变量进行赋值
Student4 s2 = new Student4("1002","江川",19);
s2.show();
}
}
构造方法
public class Student3 {
Student3(){
System.out.println("这是无参的构造方法");
}
Student3(String s) {
System.out.println("这是有参的构造方法:" + s);
}
}
class Demo3 {
public static void main(String[] args) {
Student3 s = new Student3("数加科技");
Student3 s2 = new Student3();
}
}