package com.qianfeng.day08.demo3;
//没学getset之前,我们都是用对象去调用,就是对象名.属性。
//如果是static(静态)修饰的属性,我们就直接用方法名.属性
//javaBean ( 1、属性 2、get/set 3、构造方法)
public class Student {
privateString name;
privateint classNum;
privateint sno;
privateboolean sex;
publicStudent(){
}
//使用 public修饰
//set + 属性名(第一个字母大写)
publicvoid setName(String name){
this.name = name;
}
//get + 属性名(第一个字母大写)
publicString getName(){
return this.name;
}
//shift+ alt + s + r
publicint getClassNum() {
return classNum;
}
publicvoid setClassNum(int classNum) {
this.classNum = classNum;
}
publicint getSno() {
return sno;
}
publicvoid setSno(int sno) {
this.sno = sno;
}
//boolean类型使用 is +属性名(第一个字母大写)
publicboolean isSex() {
return sex;
}
publicvoid setSex(boolean sex) {
this.sex = sex;
}
}
//没学getset之前,我们都是用对象去调用,就是对象名.属性。
//如果是static(静态)修饰的属性,我们就直接用方法名.属性
package com.qianfeng.day08.demo3;
/*
* private 私人
* 1、使用private修饰的方法,属性在其他类中不能访问 即对象名.私有方法/属性会错
* 错误:The field Person.privateName isnot visible
* 2、使用private修饰的方法,属性可以,也只能在本类中使用
* 运用场景:
* 属性:javaBean的使用 建议:对象的属性都使用private进行修饰,然后提供get/set
* 方法:辅助方法的时候
* public 公共的
* 1、使用public修饰方法/属性/类(外部类)在所类中都可以进行访问
* 运用场景:
* 类需要给外界提供功能支持的时候使用(工具类)
*
*default(friendly)【什么都不写的】
* 1、修饰方法/属性/类(外部)在本类可以访问
* 2、在同包下可以访问
* 3、在不同包下是不能进行访问
* 运用场景:
* 几乎不使用
*
*protected ---涉及继承
* 1、修饰方法/属性在本类可以访问
* 2、在同包下可以访问
* 3、在不同包下是不能进行访问(如果是子父类关系,可以访问)
* 运用场景:
* 一般涉及到继承的时候使用这个
*
*/
public class Person {
//内部类可以使用所有访问权限修饰符
/*protected/private/public/default class Person3{
}*/
privateString privateName; //私有成员属性
privatevoid privateMethod(){
System.out.println(this.privateName);
}
StringdefaultName;
voiddefaultMethod(){
System.out.println("Person.defaultMethod()");
}
protectedString protectedName;
protectedvoid protectedMethod(){
System.out.println("Person.protectedMethod()");
}
publicstatic void main(String[] args) {
System.out.println("-----------private--------------------------");
Person person = new Person();
System.out.println(person.privateName); //本类中使用不报错
person.privateMethod();
Student student = new Student();
student.setName("");
student.getName();
System.out.println("-----------default--------------------------");
Person person2 = new Person();
System.out.println(person2.defaultName);
person2.defaultMethod();
System.out.println("-----------protected--------------------------");
Person person3 = new Person();
System.out.println(person3.protectedName);
person3.protectedMethod();
}
}
package com.qianfeng.day08.demo3;
public class DefaultTest {
publicstatic void main(String[] args) {
Person person = new Person();
System.out.println(person.defaultName);
person.defaultMethod();
}
}
package com.qianfeng.day08.demo3;
public class ProtectedTest {
publicstatic void main(String[] args) {
Person person = new Person();
System.out.println(person.defaultName);
person.defaultMethod();
}
}
package com.qianfeng.day08.demo3;
public class TestPrivate {
publicstatic void main(String[] args) {
Person person = new Person();
//The field Person.privateName is notvisible
//System.out.println(person.privateName);
//The method privateMethod() from thetype Person is not visible
//person.privateMethod();
}
}
package com.qianfeng.day08.demo3.sun;
import com.qianfeng.day08.demo3.Person;
public class DefaultTest2 {
publicstatic void main(String[] args) {
Person person = new Person();
//The field Person.defaultName is notvisible
//System.out.println(person.defaultName);
//person.defaultMethod();
}
}
package com.qianfeng.day08.demo3.sun;
import com.qianfeng.day08.demo3.Person;
public class ProtectedTest2 {
publicstatic void main(String[] args) {
Person person = new Person();
//The field Person.defaultName is notvisible
//System.out.println(person.defaultName);
//person.defaultMethod();
}
}