当前位置: 首页 > news >正文

武汉网站建设的免费信息推广网站

武汉网站建设的,免费信息推广网站,新乡网站建设费用,网站后台ftp替换图片怎么做目录 一、访问修饰符 一、权限范围 二、注意事项 二、封装(面向对象的三大特征之一) 一、封装的好处 二、封装的实现步骤 三、和构造器结合 四、练习题中的细节 一、访问修饰符 一、权限范围 访问修饰符用于控制方法和属性(成员变量…

目录

一、访问修饰符

一、权限范围

二、注意事项

二、封装(面向对象的三大特征之一)

一、封装的好处

二、封装的实现步骤

三、和构造器结合

四、练习题中的细节


一、访问修饰符

一、权限范围

访问修饰符用于控制方法和属性(成员变量)的访问权限

四种访问修饰符: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());}
}

http://www.wooajung.com/news/22070.html

相关文章:

  • 电子商务网站开发实务常州网站制作维护
  • 站长统计app赣州seo优化
  • 服装模板网站凡科建站收费价目表
  • 用phpnow搭建网站的整个流程网站排名优化外包
  • 噼里啪啦电影免费观看高清持续优化疫情防控举措
  • 怎么自己做网站赚钱深圳最新消息
  • 公司门户网站是什么网络营销岗位招聘信息
  • 义乌网站建设开发网站推广关键词工具
  • 创业园区网站建设广州网站设计公司
  • 北京哪里有教怎么做网站的接单平台
  • 网站弹窗页面是谁做的安全优化大师下载
  • 镜像网站做排名seo怎样才能优化网站
  • 长治网站制作小程序成人企业管理培训课程
  • 成都疫情今天咋样搜索引擎优化什么意思
  • 做网站需要了解哪些知识网络营销的真实案例分析
  • 写作网站官方百度seo排名培训 优化
  • 天津建站费用seo 怎么做到百度首页
  • 手机网站建立怎么推广一个网站
  • 商品网站建设设计思路第一设计
  • 温州专业全网推广建站公司推广平台怎么做
  • 合肥市建设工程造价管理站网站营业推广促销方式有哪些
  • 织梦门户网站电商培训机构排名
  • 网站设计任务书范文微信推广软件哪个好
  • 西安广告设计培训青岛seo关键词排名
  • 开源网站下载百度站长链接提交
  • 网站换dns免费推广的途径与原因
  • 基于springmvc的电商网站设计与实现游戏推广论坛
  • 新公司做网站有效果吗指数分布的分布函数
  • 公司的网站建设一般需要多少费用seo推广有哪些方式
  • 宜昌微网站建设前端seo是什么意思