标签: private

Python中私有和受保护方法的继承

我知道,Python中没有'真正的'私有/受保护方法.这种方法并不意味着隐藏任何东西; 我只是想了解Python的作用.

class Parent(object):
    def _protected(self):
        pass

    def __private(self):
        pass

class Child(Parent):
    def foo(self):
        self._protected()   # This works

    def bar(self):
        self.__private()    # This doesn't work, I get a AttributeError:
                            # 'Child' object has no attribute '_Child__private'
Run Code Online (Sandbox Code Playgroud)

那么,这种行为是否意味着,"受保护"方法将被继承,但"私有"根本不会被继承?
或者我错过了什么?

python methods inheritance private protected

58
推荐指数
4
解决办法
4万
查看次数

私有成员是否继承在C#中?

刚看到一个教程说:

Class Dog
{
  private string Name;
}
Class SuperDog:Dog
{
 private string Mood;
}
Run Code Online (Sandbox Code Playgroud)

然后有一个UML显示SuperDog也会继承Name.我试过但似乎只有公共成员才能继承.至少我无法访问Name,除非它被声明为public.

c# inheritance private

57
推荐指数
4
解决办法
7万
查看次数

我什么时候想让我的私有类静态?

一般来说,将私有类声明为静态是否有任何好处?

在什么情况下我想使用以下哪一个而不是另一个?

private static class Foo
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

VS

private class Foo
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

java static private class

57
推荐指数
3
解决办法
4万
查看次数

如何制作一个真正的私有实例变量?

我想创建一个无法从外部访问的实例变量.在objective-c中有可能是这样的吗?我记得Apple有私有变量和类似的东西,但如果人们知道它们,他们就可以使用它们.Apple称之为"私有API",但显然其他人可以访问那些东西,如果他们发现那里有什么.

到目前为止,我认为像这样的东西创建了一个私有实例变量:

@interface MyClass : NSObject {
    CGFloat weight;
}
Run Code Online (Sandbox Code Playgroud)

没有@property,没有@synthesize,只是上面的声明.

另外我知道Apple添加了一个_inFrontOfTheirPrivateInstanceVariables,但他们说某些地方他们不喜欢看到其他人这样做,因为他们可能会在执行此操作时覆盖意外隐藏的实例变量.

这里的诀窍是什么?

visibility private objective-c instance-variables

51
推荐指数
3
解决办法
5万
查看次数

究竟什么是私有API,为什么Apple会拒绝使用iOS应用程序?

我已经阅读了几篇关于此的文章,我只是想看看我是否理解这一点:

如果您使用私有API,Apple将拒绝您的应用...

  1. "私有API"和"非私有API"之间的主要区别是什么?

  2. "非私有"API是否仅由Apple提供和验证的API?

  3. API不仅仅是一种与Framework交互的方式,而Framework只是一组人们可以用于琐碎目的的封装类/头文件吗?

  4. 这不意味着我不能在我的应用程序中重复使用任何人的代码(Apple除外)吗?

  5. 如果这是真的,那么每当程序员制作他或她自己的自定义类和方法时,他是否只是为了他的特定目的而在技术上设计一个迷你框架?那么这不意味着他正在使用自己的私有API吗?

  6. 使用别人的类/方法和我的类/方法之间的区别甚至是什么,他们怎么能分辨出差异,为什么这会成为一个问题呢?

我对此的理解听起来很荒谬,并且不相信我理解"私有API"是正确的.我确实读到它是为了防止API中的任何更改可能导致您的应用程序功能失常.这是否意味着API在运行时链接(与编译时相反),并且可以在您不知情的情况下自动更新?(看,我最初认为API /框架在你编译的时候就是一成不变的,也许这就是我错的地方)

有人可以帮帮我吗?我对这个政策感到很困惑.谢谢!

iphone api frameworks private ios

51
推荐指数
1
解决办法
2万
查看次数

set和get方法与public变量的优点

可能重复:
为什么要使用getter和setter?

制作方法来访问类中的私有变量而不是将变量公开是否有任何优势?

例如,第二种情况比第一种情况好吗?

//Case 1
public class Shoe{
    public int size;
}

//Case 2
public class Shoe{
    private int size;
    public int getSize(){
        return size;
    }

    public void setSize(int sz){
        size = sz;
    }

}
Run Code Online (Sandbox Code Playgroud)

java methods private class public

49
推荐指数
3
解决办法
5万
查看次数

用吸气剂'公共静态决赛'或'私人静态决赛'?

在Java中,它教导变量应保持私有以实现更好的封装,但静态常量呢?这个:

public static final int FOO = 5;
Run Code Online (Sandbox Code Playgroud)

结果与此相当:

private static final int FOO = 5;
...
public static getFoo() { return FOO; }
Run Code Online (Sandbox Code Playgroud)

但哪种更好的做法?

java static final private public

48
推荐指数
3
解决办法
2万
查看次数

干净的C++粒度朋友相当于?(答案:律师 - 客户成语)

为什么C++有public成员,任何人都可以调用和friend声明所有 private成员公开给定的外部类或方法,但没有提供语法将特定成员暴露给给定的调用者?

我想表达一些例程的接口,这些例程只能由已知的调用者调用,而不必让那些调用者完全访问所有的私有,这感觉是一个合理的想法.我能想出的最好的(下面)和其他人的建议到目前为止围绕着成语/不同间接性的模式,我真的只想要一种方法来获得单一的,简单的类定义,明确指出哪些来电者(比更细粒度),我的孩子,或绝对任何人)可以访问哪些成员.表达以下概念的最佳方式是什么?

// Can I grant Y::usesX(...) selective X::restricted(...) access more cleanly?
void Y::usesX(int n, X *x, int m) {
  X::AttorneyY::restricted(*x, n);
}

struct X {
  class AttorneyY;          // Proxies restricted state to part or all of Y.
private:
  void restricted(int);     // Something preferably selectively available.
  friend class AttorneyY;   // Give trusted member class private access.
  int personal_;            // Truly private state ... …
Run Code Online (Sandbox Code Playgroud)

c++ design-patterns private friend

47
推荐指数
2
解决办法
7527
查看次数

私有/受保护方法的JavaDoc?

我应该为私有受保护的方法编写JavaDoc 吗?私有变量怎么样?

我在Java书上看到了类示例,私有变量是JavaDoc.所以我无法理解JavaDoc 私有(或受保护)方法是否是一个好习惯.

java javadoc private protected

47
推荐指数
5
解决办法
4万
查看次数

TypeScript 中的私有关键字和私有字段有什么区别?

在 TypeScript 3.8+ 中,使用private关键字将成员标记为私有有什么区别:

class PrivateKeywordClass {
    private value = 1;
}
Run Code Online (Sandbox Code Playgroud)

并使用为 JavaScript 提议#私有字段:

class PrivateFieldClass {
    #value = 1;
}
Run Code Online (Sandbox Code Playgroud)

我应该更喜欢一个吗?

encapsulation private class typescript class-fields

46
推荐指数
2
解决办法
5974
查看次数