seo网站推广的主要目的是什么,龙岗网页设计价格,做网站如何自动采集图片,网站域名包括哪些目录 一、访问修饰符
一、权限范围
二、注意事项
二、封装#xff08;面向对象的三大特征之一#xff09;
一、封装的好处
二、封装的实现步骤
三、和构造器结合
四、练习题中的细节 一、访问修饰符
一、权限范围
访问修饰符用于控制方法和属性#xff08;成员变量…目录 一、访问修饰符
一、权限范围
二、注意事项
二、封装面向对象的三大特征之一
一、封装的好处
二、封装的实现步骤
三、和构造器结合
四、练习题中的细节 一、访问修饰符
一、权限范围
访问修饰符用于控制方法和属性成员变量的访问权限
四种访问修饰符public、protected、默认、 private
四种访问修饰符的权限图片 二、注意事项 包的优先级类
package com.hspedu.modifier;public class A {//四个属性,分别使用不同的访问修饰符来修饰public int n1 100;protected int n2 200;int n3 300;private int n4 400;public void m1(){//在同一个类中该方法可以访问public、protected,默认,private修饰的属性或方法// 属性System.out.println(n1 n1 n2 n2 n3 n3 n4 n4);}}package com.hspedu.pkg;import com.hspedu.modifier.A;public class Test {public static void main(String[] args) {A a new A();//在不同包下只能访问public修饰的属性或方法//不可以访问protected,私有private修饰的属性或方法System.out.println(n1 a.n1);a.m1(); }
}比如下面代码中方法m1()是public修饰的但是其中的属性n1-n4是四种访问修饰符修饰的但是在pkg包中可以访问方法m1自然也可以访问n1-n4
二、封装面向对象的三大特征之一
英语encapsulation
一、封装的好处
1隐藏实现细节
2对数据进行验证保证安全合理
二、封装的实现步骤
需要使用set和get方法
1将属性进行私有化 private (只有在同一个类中才可以访问外部不能修改属性 2提供一个public set方法用于对属性判断并赋值比如第七章作业中的十三题设置的setRadius方法用于对属性进行判断并赋值
例子 package com.hspedu.encap;public class Encapsulation0207 {public static void main(String[] args) {Person0207 person0207 new Person0207();person0207.setName(jack解开了);person0207.setAge(190);person0207.setSalary(30000);System.out.println(person0207.info());//工资不能直接查看,只能通过get方法查看//System.out.println(personRev.salary);System.out.println(person0207.getSalary());//如果直接使用构造器指定属性,那么get和set方法的逻辑判断就失效了Person0207 smith new Person0207(smith, 200, 50000);System.out.println(smith的信息);System.out.println(smith.info());}
}
//不能随便查看人的年龄,工资等隐私并对设置的年龄进行合理的验证。
//年龄合理就设置否则给默认年龄,必须在 1-120,年龄
//工资不能直接查看name的长度在 2-6字符 之间
class Person0207 {private String name;private int age;private double salary;public Person0207() {}//有三个属性的构造器public Person0207(String name, int age, double salary) {
// this.name name;
// this.age age;
// this.salary salary;//将set方法写在构造器中这样仍然可以验证//在创建新对象的时候name/age/salary依次被传参进来//然后依次调用以下set方法进行逻辑判断即套娃setName(name);setAge(age);setSalary(salary);}public void setName(String name) {// name的长度在 2-6字符 之间if(name.length() 2 name.length() 6){this.name name;}else{System.out.println(name的长度需要在2-6字符之间赋予默认名字);this.name 无名;}}public int getAge() {return age;}public void setAge(int age) {//年龄合理就设置否则给默认年龄,必须在 1-120if(age 1 age 120){this.age age;}else{System.out.println(你设置的年龄不对需要在(1-120)给出默认年龄18);this.age 18;}}public double getSalary() {return salary;}public void setSalary(double salary) {this.salary salary;}public String info(){return 个人信息name name age age salary salary;}
}
三、和构造器结合
操作在构造器构造方法内调用setXxx()方法 public Person0207(String name, int age, double salary) {
// this.name name;
// this.age age;
// this.salary salary;//将set方法写在构造器中这样仍然可以验证//在创建新对象的时候name/age/salary依次被传参进来//然后依次调用以下set方法进行逻辑判断即套娃setName(name);setAge(age);setSalary(salary);}
四、练习题中的细节
1.属性都设置为private
2.无参构造器和有参构造器都需要写上构造器和set方法结合
package com.hspedu.encap;public class Account0207 {private String name;private double bala;private String passwd;public Account0207() {}//set方法和构造器结合public Account0207(String name, double bala, String passwd) {setName(name);setBala(bala);setPasswd(passwd);}public String getName() {return name;}public void setName(String name) {int len name.length();if(len 2 || len 3 || len 4 ){//只要满足一个条件就不会再判断后面的this.name name;}else{System.out.println(要求名字的长度为2位或3位或4位输入有误给出默认名字);this.name 无名;}}public double getBala() {return bala;}public void setBala(double bala) {if(bala 20){this.bala bala;}else{System.out.println(要求余额必须20,给出值);this.bala 0;}}public String getPasswd() {return passwd;}public void setPasswd(String passwd) {//密码必须是六位if(passwd.length() 6){this.passwd passwd;}else{System.out.println(密码必须是六位,如果不满足则赋默认值);this.passwd 000000;}}public String info(){return 账户姓名: name 余额: bala 密码: passwd;}
}package com.hspedu.encap;public class TestAccount0207 {public static void main(String[] args) {Account0207 account0207 new Account0207();account0207.setName(李白);account0207.setBala(13);account0207.setPasswd(6666);System.out.println(account0207.info());System.out.println();Account0207 account0208 new Account0207(李响, 8, 888888);System.out.println(account0208.info());}
}