Java05-3 访问控制符

一、访问控制符(域修饰符):限制变量和方法的可访问范围
         本类、本包、其他包、其它包的子孙类  (1可以使用,0不能使用)
 public             1     1     1     1
 protected          1     1     0     1    (只有子类可用)
 不加控制符          1     1     0     0      <default>
 private                       1     0     0     0
 
(在同一个源文件中,只能有一个类被public 修饰,修饰public的类的类名必须与文件名一致)
(局部变量不能用访问控制符修饰)

二、实体类:代表了客观事物的数据模型,一般情况下,在实体类中不定义对事物的操作。
    例如 有一个学生类,用来映射学生的所有数据,那么该类中只有学生的相关属性,而没有关于学生增删改查的操作
 一般在实体类中,属性都要私有化。这样子对属性的访问就可以灵活的控制起来
例如有些属性,我们希望使用者可以获取该属性值,但是不能修改该属性值

(实体类固定格式):
属性
无参构造方法
有参构造方法    赋初始值  (简化了成员变量赋初始值的过程,参数名与成员变量名保持一致,参数可根据需要设置,一般写全)
setter和getter方法   通过统计的方式赋值和获取值    (成员方法)
toString()    快速查看信息     (成员方法)

针对于私有化的属性,让使用者通过setter方法和getter方法来访问对应的属性
setter是用来修改属性值  (有需要修改成的参数无返回值);       getter是用来获取属性值    (有返回值无参数)

//学生的实体类
public class Student {
       private int id;    
       private String name;

       public void setId(int id) {   //形参id作用范围本方法中
    this.id = id;    //(此处实参赋值-形参id-成员变量id)
    //(this.id的id为成员变量作用范围本类中   等号右侧的id为离它最近的id,即形参(int id))
       }
       public int getId() {
    return this.id;
       }  
       public void setName(String name) {
    this.name = name;
       }
       public String getName() {
    return name;
       }

       //(只适合看信息,不能使用,不用再另外打印)
       @Override
       public String toString() {
    return "Student [id =" + id + ", name =" + name + "]";
       }

       public static void main(String[] args) {
              通过无参的构造方法创建对象
    Student student = new Student();
              student.setId(1);
              student.setName("张三");
              //通过有参的构造方法创建对象
              Student student2 = new Student(2, 李四);
              System.out.println(student.getId());   //1
              System.out.println(student);     //Student [id =1, name =张三]
              System.out.println(student2);   //Student [id =2, name =李四]
             //Student[] students = {student, student2}   将多个信息放到同一数组里
       }
}


Calculator cal = new Calculator(3,5);
double sum = cal.add();
System.out.println("sum = " + sum); 
System.out.println(calr.sub()); 

重新赋值
1:新值在原来位置替换原值
cal.setM(7);
cal.setN(8);
System.out.println(cal.add()); 
2:新开辟了内存
cal = new Calculator(7,8); 
3:Scanner输入值


AnimalUtils utils = new AnimalUtils();
两只狗各叫一声
utils.cry(new Dog());
utils.cry(new Dog());    
        
同一只猫叫两声
Cat cat = new Cat();
utils.cry(cat);
utils.cry(cat);


规范格式对齐:右击Source - Format
右击-Source-Generate      快捷键Alt+Shift+s       生成有参和无参构造方法/ setter方法和getter方法/toString()方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值