精华内容
下载资源
问答
  • springMVC自动把前台页面中的属性封装成对象时,需要注意的事
    千次阅读
    2019-03-28 11:01:32

    在处理单一数据表时,一般不会发生问题,在处理多层级数据关联表时,可能会存在一些问题,我最近在做实验,发现如果在对人员进行添加时,选择部门时(人员表+部门表),自动封装发生了错误,提示类似:Invalid property ‘department’ of bean class [com.backman.web.bean.person]: Could not instantiate property type [com.backman.web.bean.Department] to auto-grow nested property path;

    1、SpringMVC在处理表单提交时,可以把页面中的属性封装成对象;

    2、要求页面中各属性的name值要与封装成对象的属性值一一匹配;

    3、在对象CLASS中,必须添加空的构造方法,否则在层级引入资源时会出现错误;

    更多相关内容
  • 主要介绍了Java面向对象之成员隐藏与属性封装操作,结合实例形式分析了Java面向对象程序设计中成员的隐藏及属性封装相关实现与使用操作技巧,需要的朋友可以参考下
  • 封装解析/属性封装/方法封装

    千次阅读 2019-10-03 22:00:04
    封装解析/属性封装/方法封装 概述 封装:隐藏对象的属性和实现的细节,仅对外提供公共的访问方式 好处: 将变化隔离 便于使用 提高重用性 提高安全性 原则: 可以将不需要对外提供的内容隐藏起来 把属性都隐藏,...

    封装解析/属性封装/方法封装

    概述
    封装:隐藏对象的属性和实现的细节,仅对外提供公共的访问方式
    好处:

    • 将变化隔离
    • 便于使用
    • 提高重用性
    • 提高安全性

    原则:

    • 可以将不需要对外提供的内容隐藏起来
    • 把属性都隐藏,仅对外提供公共的访问方式

    分类:
    1:属性的封装
    1.1:设置属性为private修饰
    1.2:对外提供公开的访问方式:set get方法
    在这里插入图片描述

    /**
    *获取性别
    */
    public String getSex(){
    	return sex;
    }
    
    stu.setSex("男");
    

    1.3:调用方传进来的值,在set中进行过滤判断

    //正确使用,不正确提示
    if (sex2.equals("男") || sex2.equals("女")){
    	sex=sex2;
    }else{
    	System.out.println("你输入的性别信息不正确,请重新输入");
    }
    

    set里面设置
    1.4:编译工具快速方法生成
    Source–>getSet选项

    2:方法的封装

    1. 首先将方法的权限改成private
    2. 在写一个方法,把private修饰的方法放进去
    3. 在测试类中直接调写的方法
      在这里插入图片描述

    调show

    Test t = new Test();
    t.show();
    

    好处:隐藏类的具体实现;操作简单,提高对象的数据的安全性


    补充:
    private

    • 权限修饰符
    • 主要用来修饰成员,(成员变量和成员函数)非静态的属性和方法
    • 被private修饰的成员只能在本类中访问

    为什么使用封装?
    不使用封装,很容易赋值出现错误,后期也容易被任何人进行更改,
    造成信息的不安全。

    在这里插入图片描述

    通过以上我们必须要清楚的知道:
    set 传值
    get获取值打印

    展开全文
  • 自定义属性,使界面更加统一风格,修改业务方便快捷。
  • C# 生成属性 封装字段

    2009-08-06 10:38:03
    C# 生成属性 封装字段 多个字段一起生成 C# 生成属性 封装字段 多个字段一起生成
  • 详解属性封装

    千次阅读 2016-06-26 01:11:14
    什么是属性封装? 我们先来看看下面这段代码  class Student   {  public string _name;  public int _age;    }  class Program  {    static void Main(string[] args)  

    什么是属性封装?

    我们先来看看下面这段代码

     class Student 
        {
              public string _name;
              public int _age;
        
        }
        class Program
        {
         
            static void Main(string[] args)
            {
                Student a = new Student();
                Console.WriteLine("请输入学生姓名:");
                a._name = Console.ReadLine();
                Console.WriteLine("请输入学生年龄");
                a._age = int.Parse(Console.ReadLine());
                Console.WriteLine("学生姓名:{0},年龄:{1}", a._name, a._age);
                Console.ReadLine();
            }
        }

    这是一段很简单的代码,一个学生类,一个测试类,并给这个对象字段进行赋值操作,这只是正常情况下,我记得我在某个博文上看到这么一句话“程序员的25%的时间是用考虑用户会输入什么奇葩数据“,这里age我们并没有什么逻辑判断,因此这里是数据不收我们的控制,用户可以随意的输入数据-1,1000.......等等。

    分析:用户可以随意输入数据由两点引起!权限、没有逻辑判断,导致数据不符合常识,那么我先从权限上下手,私有化,但是私有的权限是当前类可以操作外部类操作部了,因此暴露一个方法出去,由这个方法负责当前类字段的和外面的联系,但是!方法封装的是对象的对象的行为!而不是封装数据字段!,所以就用到属性封装!

     class Student 
        {
            private string _name;


            public string Name
            {
                get { return _name; }
                set { _name = value; }
            }
            private int _age;


            public int Age
            {
                get { return _age; }
                set 
                {
                    if (value >= 0 && value <= 100)
                        _age = value;
                    else
                        _age = -1;
                }
            }
        
        }
        class Program
        {
         
            static void Main(string[] args)
            {
                Student a = new Student();
                Console.WriteLine("请输入学生姓名:");
                a.Name = Console.ReadLine();
                Console.WriteLine("请输入学生年龄");
                a.Age = int.Parse(Console.ReadLine());
                Console.WriteLine("学生姓名:{0},年龄:{1}", a.Name, a.Age);
                Console.ReadLine();
            }

        }


    Student类中的name 和age都被封装为读写属性,

    get访问器 为只读属性//读 就是返回当前的数据

    set访问器 为只写属性//写  就对封装的字段进行赋值,运算等操作

    包含get和set访问器 为读写属性//两者特性都同时拥有


    从上面我的代码我们可以发现字段的安全性被提高了,这就是属性封装,将字段封装到内部中,提供对外访问我的方式.


    属性的类型可以任意类型吗?

    可以,对象,数组等等。


    属性和方法的区别是什么?

    如果从概念上来解释就是属性封装的是字段,方法封装的是对象的行为,从语法上来看,方法有()属性没有()且属性没有返回值。


    属性和字段有什么区别了?

    如果从概念上来解释就是属性的字段是保护者,负责字段的安全,从语法上看字段的权限是private 属性是public 


    很多时候我们已经养成了一创建某个字段就会私有化并进行属性封装,但是我们并没有进行什么逻辑判断,如果你是手写代码而不是使用快捷键等操作,效率是很低下的,如下


    private string name;        

    public string Name
            {
                get { return _name; }
                set { _name = value; }
            }

    在C#更新到3.0的时候提供了一个新特性就是 ” 自动属性封装“!自动属性封装提高了代码的简介性!如下:


    private string name;    

     public string Name
            {
              get;

      set;
            }

    效果和原写法是一样的,其实这还是不最简介的,如下去掉换行更加简介。

    private string name;   

    public string Name{get;set;}
            



    展开全文
  • UItextView 的placeHodler属性封装
  • 1.属性封装作用: 直接把表单提交属性封装到action的属性里面 步骤: (1)在action中声明成员变量,变量名称和表单输入项的名称一样 (2)生成变量的set方法。 缺点: 数据只是放在属性中,并没有放到对象...

    本文学习内容来自传智博客struts教程。

    1.属性封装

    作用:
    直接把表单提交属性封装到action的属性里面
    步骤:
    (1)在action中声明成员变量,变量名称和表单输入项的名称一样
    (2)生成变量的set方法。
    缺点:
    数据只是放在属性中,并没有放到对象中去。

    (1)action类:

    package data;
    
    import com.opensymphony.xwork2.ActionSupport;
    
    public class DataDemo1Action extends ActionSupport {
    
    
        private String username;
        private String password;
        private String address;
    
        public String execute() throws Exception {
            System.out.println("username:"+username+"password:"+password+"address:"+address);
            return NONE;
        }
    
        public String getUsername() {
            return username;
        }
    
        public void setUsername(String username) {
            this.username = username;
        }
    
        public String getPassword() {
            return password;
        }
    
        public void setPassword(String password) {
            this.password = password;
        }
    
        public String getAddress() {
            return address;
        }
    
        public void setAddress(String address) {
            this.address = address;
        }
    
    }

    (2)struts.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
        "http://struts.apache.org/dtds/struts-2.3.dtd">
    
    <struts>
        <package name="demo1" extends="struts-default" namespace="/">
            <action name="book" class="action.BookAction">
                <!-- chain: 转发 ,页面会发生改变,网址不发生改变,仍然为 http://127.0.0.1:8080/strutslearn2All/book -->
                <result name="success" type="chain">orders</result>
            </action>
    
            <action name="orders" class="action.OrdersAction">
                <result name="success">/HelloOrder.jsp</result>
            </action>
        </package>
    
    
        <package name="demo2" extends="struts-default" namespace="/">
            <action name="data1" class="data.DataDemo1Action"></action>
        </package>
    
    </struts>

    (3)data1.jsp

    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    </head>
    <body>
       <form action="${pageContext.request.contextPath}/data1.action" method="post">
          username:<input type="text" name="username"/>
          <br/>
          password:<input type="text" name="password"/>
          <br/>
          address:<input type="text" name="address"/>
          <br/>
          <input type="submit" value="submit"/>
        </form>
    </body>
    </html>

    2.模型驱动封装

    作用:
    使用模型驱动封装,可以直接把表单属性封装到实体类对象里面
    实现步骤:
    (1)action实现接口ModelDriven
    (2)实现接口里面的getModel()方法
    把创建对象返回
    (3)在action里面创建实体类对象
    要求:
    表单输入项的name属性值和实体类属性名称一样。

    (1)action类:

      package data;
    
    import com.opensymphony.xwork2.ActionSupport;
    import com.opensymphony.xwork2.ModelDriven;
    
    import entity.User;
    
    public class DataDemo2Action extends ActionSupport implements ModelDriven<User> {
    
        //创建对象
        private User user = new User();
    
    
        public String execute() throws Exception {
    
            System.out.println(user);
            return NONE;
        }
    
        @Override
        public User getModel() {
            return user;
        }
    
    }

    (2)struts.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
        "http://struts.apache.org/dtds/struts-2.3.dtd">
    
    <struts>
        <package name="demo1" extends="struts-default" namespace="/">
            <action name="book" class="action.BookAction">
                <!-- chain: 转发 ,页面会发生改变,网址不发生改变,仍然为 http://127.0.0.1:8080/strutslearn2All/book -->
                <result name="success" type="chain">orders</result>
            </action>
    
            <action name="orders" class="action.OrdersAction">
                <result name="success">/HelloOrder.jsp</result>
            </action>
        </package>
    
    
        <package name="demo2" extends="struts-default" namespace="/">
            <action name="data2" class="data.DataDemo2Action"></action>
        </package>
    </struts>

    (3)data2.jsp

    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    </head>
    <body>
         <form action="${pageContext.request.contextPath}/data2.action" method="post">
          username:<input type="text" name="username"/>
          <br/>
          password:<input type="text" name="password"/>
          <br/>
          address:<input type="text" name="address"/>
          <br/>
          <input type="submit" value="submit"/>
        </form>
    </body>
    </html>

    (4)实体类:

    package entity;
    
    public class User {
    
        private String username;
    
        private String password;
    
        private String address;
    
        public String getUsername() {
            return username;
        }
    
        public void setUsername(String username) {
            this.username = username;
        }
    
        public String getPassword() {
            return password;
        }
    
        public void setPassword(String password) {
            this.password = password;
        }
    
        public String getAddress() {
            return address;
        }
    
        public void setAddress(String address) {
            this.address = address;
        }
    }

    3.表达式封装

    作用
    使用表达式封装可以将表单数据封装到实体类里面
    步骤
    1.在action中声明实体类
    2.生成实体类变量的set方法
    3.在表单输入项的name属性值里面写表达式形式。

    (1)action类

    package data;
    
    import com.opensymphony.xwork2.ActionSupport;
    
    import entity.Book;
    import entity.User;
    
    public class DataDemo3Action extends ActionSupport {
    
    private User user;
        private Book book;
    
    
    
    public Book getBook() {
    return book;
    }
    
    public void setBook(Book book) {
    this.book = book;
    }
    
    public User getUser() {
    return user;
    }
    
    public void setUser(User user) {
    this.user = user;
    }
    
    @Override
    public String execute() throws Exception { 
    System.out.println(user);
    System.out.println(book);
    return NONE;
    }
    }

    (2)book实体类

    package entity;
    
    public class Book {
    
        private String bookname;
    
        public String getBookname() {
            return bookname;
        }
    
        public void setBookname(String bookname) {
            this.bookname = bookname;
        }
    }

    (3)dat3.jsp

    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    </head>
    <body>
    
        <form action="${pageContext.request.contextPath}/data3.action" method="post">
            username:<input type="text" name="user.username" />
            <br/> 
            password:<input type="text" name="user.password" /> 
            <br/> 
            address:<input type="text" name="user.address" /> 
            <br/> 
            bookname:<input type="text" name="book.bookname"/>
            <br/>
            <input type="submit" value="submit" />
        </form>
    
    </body>
    </html>

    (4)struts文件

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
        "http://struts.apache.org/dtds/struts-2.3.dtd">
    
    <struts>
        <package name="demo1" extends="struts-default" namespace="/">
            <action name="book" class="action.BookAction">
                <!-- chain: 转发 ,页面会发生改变,网址不发生改变,仍然为 http://127.0.0.1:8080/strutslearn2All/book -->
                <result name="success" type="chain">orders</result>
            </action>
    
            <action name="orders" class="action.OrdersAction">
                <result name="success">/HelloOrder.jsp</result>
            </action>
        </package>
    
    
        <package name="demo2" extends="struts-default" namespace="/">
            <action name="data3" class="data.DataDemo3Action"></action>
        </package>
    </struts>

    4.代码总体架构

    这里写图片描述

    4.使用以上封装要注意的问题

    (1)同一个action中,不能同时使用属性封装和模型驱动封装获取同一个表单数据。如果同时使用,则框架只会使用模型驱动。

    (2)模型驱动与表达式封装的不同:
    1.使用模型驱动只能把数据封装到一个实体类对象里面。
    在一个action里面不能把模型驱动封装到不同的实体类对象里面。
    2.表达式封装可以把数据封装到不同的对象中去。

    展开全文
  • 浅谈JS对象的属性封装

    千次阅读 2017-09-06 01:24:25
    对象属性不想被其他人修改,设置其扩展性precentExtensions; 可通过Object.isExtensible(obj)判断对象是否可扩展: alert("对象是否可扩展:"+Object.isExtensible(aaa));//true Object.prevent
  • C# 类属性封装、字段的详解

    千次阅读 2015-08-03 14:51:46
    今日敲代码时,突然感觉对类的属性封装、字段有点犯迷糊了。。连基础的都不知道了,那敲的代码怎么能严谨高效的。果断拿起各种高级编程、大全啥的翻起来~~这不再把自己的理解写下来(定义都是直接抄书的),献给同样...
  • Java之属性封装

    千次阅读 2016-10-29 20:50:33
    Java特征之封装:关于封装,两个要素需要注意,一是:私有化!即通过访问修饰符private对类中的属性进行修饰,达到私有化的目的。private修饰的属性只能在本类中使用,本类之外是无法使用的(为设立公有读写端口的...
  • java 类的定义 属性封装 Static属性封装 设置set() get()函数 class Student{ /Student类 并进行封装 private String name; private int id; private String sex; private String subject; private static String ...
  • java fusionChart属性封装

    2013-10-27 17:49:19
    fusionChart属性封装
  • 传统的有通过域对象的方法来挨个使用getParameter方法来获取表单数据再进行操作(比如封装到一个JavaBean等等),本文主要使用Struts2框架来获取表单数据。 在首先会通过最传统的方法通过Servlet来获取表单数据,...
  • JAVA中的封装

    2021-03-10 10:32:42
    JAVA中的封装性就是指对外部不可见。...//为属性封装:private 属性类型 属性名称//为方法封装:private 方法返回值方法名称(参数列表){}//必须通过setter和getter方法设置和取得public class P...
  • Form表单中的属性封装到对象中

    千次阅读 2017-08-22 14:48:31
    将Form表单中的属性封装到对象中,使用beanutils工具类获得在java项目中常常会涉及到form表单提交到后台,而提交到后台的方式有get和post两种。大多数公司都会采用post方式更安全。经常会涉及到这么一种情况,form...
  • 封装:指的是隐藏对象中一些不希望被外部所访问到的属性或方法,使用封装,确实增加了类的定义的复杂程度,但是它也确保了数据的安全性: 1.隐藏了属性名,使调用者无法随意的修改对象中的属性 2.增加了getter和setter...
  • js属性与方法封装

    千次阅读 2018-03-23 15:35:38
    (一)属性与方法封装(对属性和方法的隐藏与暴露) (1)js是一种基于原型(prototype)的语言。 (2)创建一个类: var Book = function(id,bookname,price){ //构造函数 var num = 1; //本类私有的属性、...
  • C# VS属性快速封装快捷处理方式

    千次阅读 2017-09-07 12:05:47
    1. 在类里输入 prop 双击键盘 tab 录入名称 生成 public int MyProperty { get; set; } 2. 在类里输入 propfull 双击tab 录入名称  生成   private int myVar;  public int MyProperty ... 
  • property使用级联属性封装结果集 ,使用 dept.id和dept.departmentName 。 编写sql语句 <!-- public Employee getEmpAndDept(Integer id); --> < select id = "getEmpAndDept" resultMap = ...
  • 微信小程序使用计算属性computed封装购物车组件
  • OrCAD原理图中如何批量修改元件封装属性(FootPrint).pdf
  • java面向对象--封装、继承和多态

    千次阅读 2020-11-24 17:03:22
    课后习题练习 什么是封装,如何使用封装? 什么是继承,怎样使用继承?...多态的作用,就是为了类在继承和派生的时候,保证使用“家谱”中任一类的实例的某一属性时的正确调用。 第一题: 任务描述 --
  • C++的string与属性封装

    千次阅读 2016-12-26 22:56:39
    属性封装 #include #include using namespace std ; /** * 定义类:Student * 数据成员:m_strName * 数据成员的封装函数:setName()、getName() */ class Student { public : // 定义数据...
  • // 2、样式属性(top,left,width,height,opacity等等) // 3、起始位置,结束位置 // 4、速度:时间间隔,步长 // 5、方向: //返回值 function moveObj(domObj,attr,startValue,endValue,timeSpace,step,...
  • java:有一个学生类,该类有属性:姓名,学号,年龄要求:利用封装的思想 来对该类的属性进行封装,并测试。 public class DayHomeWork { public static void main(String[] args) { //创建对象 Student s = new ...
  • 文章目录封装反射动态导入模块类内置attr属性包装与授权 本篇文章仍然是面向对象的相关内容,主要分析了封装、反射、动态导入模块、类内置attr属性、包装与授权三大面向对象编程的后续处理方法 封装 封装的本质: 把...
  • C#_属性封装(get和set)

    千次阅读 2015-12-12 18:17:11
    class Person { private int x; private int y; public int X { get { return this.x; } set
  • 主要给大家介绍了简单好用的iOS导航栏封装.runtime属性控制的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 953,676
精华内容 381,470
关键字:

属性封装