首页 \ 问答 \ Java中强大而弱的封装(Strong and Weak encapsulation in Java)

Java中强大而弱的封装(Strong and Weak encapsulation in Java)

请告诉我java语言的强弱封装之间的区别。 封装是数据的绑定,它是在一个叫做类的单元中的相关函数。 那么,这个术语意味着弱而强大的封装?


Please, tell me the difference between strong and weak encapsulation w.r.t. java language. Encapsulation is binding of data and it's associated functions in a single unit called class. So, what the term means weak and strong encapsulation?


原文:https://stackoverflow.com/questions/38138270
更新时间:2022-07-05 11:07

最满意答案

将右侧表格条件从WHEREON以获得真正的LEFT JOIN结果。

SELECT 
    CLI.id client_id
   ,CLI.name client_name
   ,VLD.number_of_hours number_of_hours 
FROM 
   client CLI 
LEFT JOIN 
   validation VLD 
ON 
   CLI.id = VLD.client_id
AND
   VLD.record_id = 392;

(在WHERE中,左连接返回正常的内连接结果。)


Move the right side table condition from WHERE to ON to get true LEFT JOIN result.

SELECT 
    CLI.id client_id
   ,CLI.name client_name
   ,VLD.number_of_hours number_of_hours 
FROM 
   client CLI 
LEFT JOIN 
   validation VLD 
ON 
   CLI.id = VLD.client_id
AND
   VLD.record_id = 392;

(When in WHERE, the left join returns regular inner join result.)

相关问答

更多
  • INNER JOIN是您应该使用的ANSI语法。 通常认为它更易于阅读,特别是当您加入很多表格时。 只要需要,它也可以轻松地替换为外部连接。 WHERE语法是更多的关系模型导向。 两个表的结果JOIN'ed是应用了过滤器的表的笛卡尔乘积,其仅选择具有匹配列的那些行。 使用WHERE语法更容易看到这一点。 至于你的例子,在MySQL (通常在SQL )这两个查询是同义词。 还要注意, MySQL还有一个STRAIGHT_JOIN子句。 使用此子句可以控制JOIN顺序:哪个表在外部循环中扫描,哪个表在内部循环中 ...
  • 查询A与以下相同: select 'true' where 3 = 1 or 3 = 2 or 3 = 3 or 3 = null 由于3 = 3是真的,你会得到一个结果。 查询B与以下相同: select 'true' where 3 <> 1 and 3 <> 2 and 3 <> null 当ansi_nulls打开时, 3 <> null是UNKNOWN,所以谓词计算结果为UNKNOWN,你没有得到任何行。 当ansi_nulls关闭时, 3 <> null为true,所以谓词的计算结果为tru ...
  • 您的where子句过滤掉空值: where Absences.Type = 3223 你是从openquery子查询到openquery ; 然后仅过滤Absences列中具有特定(非空)值的行。 你是不是想加入另一种方式,从Absenses到openquery ? Your where clause is filtering out null values: where Absences.Type = 3223 You are left-joining from the openquery subqu ...
  • 将右侧表格条件从WHERE到ON以获得真正的LEFT JOIN结果。 SELECT CLI.id client_id ,CLI.name client_name ,VLD.number_of_hours number_of_hours FROM client CLI LEFT JOIN validation VLD ON CLI.id = VLD.client_id AND VLD.record_id = 392; (在WHERE中,左连接返回正常 ...
  • 这不是Teradata特有的,它在所有RDBMS中都是相同的(或者至少应该是相同的)。 任何与NULL的比较都会导致UNKNOWN和NOT IN是AND状态: personid <> 1st_value_in_list AND personid <> 2nd_value_in_list AND AND personid <> NULL 这已经被多次讨论过了,例如NOT IN子句和NULL值 It's not specific to Teradata, it's the same (or at least s ...
  • 您可以将它添加到Join子句: SELECT f_assetnetbiosname, COUNT(f_sessiondate) as 'Sessions' FROM tb_assets ass LEFT OUTER JOIN tb_sessions ses ON ses.f_sessionnetbiosname = ass.f_assetnetbiosname AND f_sessiondate BETWEEN '04/01/2015' AND ...
  • 当表具有相关数据时使用JOIN 。 这里,2个表彼此无关。 更好的选择是使用UNION 。 SELECT id, randomNumber FROM tableA WHERE ID IN (0,1,2,3) UNION ALL SELECT id, randomNumber2 FROM tableB WHERE ID IN (0,1,2,3) 或者,只使用2个单独的查询并合并结果。 JOINs are used when the tables have related data. Here, the ...
  • 处理NULL ,不能使用=或<>因为值是未知的 ,而是使用IS NULL或IS NOT NULL , WHERE COLLABORATORS.userid = 23 and FOLDER.parent IS NULL MySQL - 使用NULL值 when dealing with NULL, you cannot use = or <> since the values are unknown but instead use IS NULL or IS NOT NULL, WHERE COLLABOR ...
  • 您可能希望显式选择空值: SELECT values... FROM bcharge charge LEFT OUTER JOIN chgHist history ON charge.key1 = history.key1 AND charge.key2 = history.key2 AND charge.key3 = history.key3 AND charge.chargeType = history.chargeType WHERE charge.chargeTyp ...
  • 您询问是否包含SQL查询 WHERE col = ? 将自动转换为 WHERE col IS NULL 通过将NULL值绑定到参数。 答案是否定的 。 如果列具有NULL值,则它永远不能与任何内容进行比较。 您需要一个不同的准备查询。 You asked if a SQL query containing WHERE col = ? will automatically be converted to WHERE col IS NULL by binding a NULL value to ...

相关文章

更多

最新问答

更多
  • 您如何使用git diff文件,并将其应用于同一存储库的副本的本地分支?(How do you take a git diff file, and apply it to a local branch that is a copy of the same repository?)
  • 将长浮点值剪切为2个小数点并复制到字符数组(Cut Long Float Value to 2 decimal points and copy to Character Array)
  • OctoberCMS侧边栏不呈现(OctoberCMS Sidebar not rendering)
  • 页面加载后对象是否有资格进行垃圾回收?(Are objects eligible for garbage collection after the page loads?)
  • codeigniter中的语言不能按预期工作(language in codeigniter doesn' t work as expected)
  • 在计算机拍照在哪里进入
  • 使用cin.get()从c ++中的输入流中丢弃不需要的字符(Using cin.get() to discard unwanted characters from the input stream in c++)
  • No for循环将在for循环中运行。(No for loop will run inside for loop. Testing for primes)
  • 单页应用程序:页面重新加载(Single Page Application: page reload)
  • 在循环中选择具有相似模式的列名称(Selecting Column Name With Similar Pattern in a Loop)
  • System.StackOverflow错误(System.StackOverflow error)
  • KnockoutJS未在嵌套模板上应用beforeRemove和afterAdd(KnockoutJS not applying beforeRemove and afterAdd on nested templates)
  • 散列包括方法和/或嵌套属性(Hash include methods and/or nested attributes)
  • android - 如何避免使用Samsung RFS文件系统延迟/冻结?(android - how to avoid lag/freezes with Samsung RFS filesystem?)
  • TensorFlow:基于索引列表创建新张量(TensorFlow: Create a new tensor based on list of indices)
  • 企业安全培训的各项内容
  • 错误:RPC失败;(error: RPC failed; curl transfer closed with outstanding read data remaining)
  • C#类名中允许哪些字符?(What characters are allowed in C# class name?)
  • NumPy:将int64值存储在np.array中并使用dtype float64并将其转换回整数是否安全?(NumPy: Is it safe to store an int64 value in an np.array with dtype float64 and later convert it back to integer?)
  • 注销后如何隐藏导航portlet?(How to hide navigation portlet after logout?)
  • 将多个行和可变行移动到列(moving multiple and variable rows to columns)
  • 提交表单时忽略基础href,而不使用Javascript(ignore base href when submitting form, without using Javascript)
  • 对setOnInfoWindowClickListener的意图(Intent on setOnInfoWindowClickListener)
  • Angular $资源不会改变方法(Angular $resource doesn't change method)
  • 在Angular 5中不是一个函数(is not a function in Angular 5)
  • 如何配置Composite C1以将.m和桌面作为同一站点提供服务(How to configure Composite C1 to serve .m and desktop as the same site)
  • 不适用:悬停在悬停时:在元素之前[复制](Don't apply :hover when hovering on :before element [duplicate])
  • 常见的python rpc和cli接口(Common python rpc and cli interface)
  • Mysql DB单个字段匹配多个其他字段(Mysql DB single field matching to multiple other fields)
  • 产品页面上的Magento Up出售对齐问题(Magento Up sell alignment issue on the products page)