这是我的家庭作业问题:在下面的类中,哪个类没有被紧密封装?
class A
{
private int x;
}
class B
{
private int x;
public void setX(int x)
{
this.x=x;
}
public int getX()
{
return x;
}
}
class C
{
private int x;
private void setX(int x)
{
this.x=x;
}
privat
在我的项目上运行代码分析时,我收到以下消息:
CA1051 : Microsoft.Design : Because field 'ClassName.VarName' is visible outside of its declaring type, change its accessibility to private and add a property, with the same accessibility as the field has currently, to provide access to it.
要解决此问题,我可以更改以下行:
Public VarN
如果我有一个类:
class A {
public:
A();
~A();
int something();
}
class B {
public:
B() {a = new A();};
~B();
private:
A *a;
}
main() {
B x;
}
在main中使用对象"a“的唯一方法是使用它的getter吗?
class B {
public:
A getA() {return *a;};
private:
A *a;
}
然后,如果我想设置私有变量对象,我需要一个setter,并在main
我只是不能从语法上掌握类概念中的枚举。我正在尝试禁用QTextEdit的框架:
//in a header for my custom class where the main element is the textField
QTextEdit* textField;
...
//displaying it myCustomClass.cpp
textField = new QTextEdit(this);
textField->Shape = QFrame::NoFrame;
我收到错误消息"invalid use of enum::Qframe::Shape“。正确的语
变量在类中使用公共,使用默认可见性修饰符。为每个成员变量创建了一个setter和一个getter,但是在Kotlin中,您可以这样做:
class Person {
var name: String = "unknown"
}
fun main(args: Array<String>) {
val person = Person()
person.name = "kevvex"
println("${person.name}")
}
这是否仍未违反封装规则,因为在使用时应用了getter和setter
在此之前,
我的问题和这些类似:
但不能解决我的问题。所以,我来解释一下。我希望不会重复一个话题。
我正在创建一个层次结构。此层次结构仅适用于具有getter和setter的对象。只是为了给大家提供一些信息。
好吧,我想要正确地做我的层次结构,但不要做一些不合乎逻辑的修饰符。这是我的类的一个简化示例,并不完全是Java的伪代码:
Class A
private id;
Class B extends A
private dataB;
Class C extends A
private dataC;
变量"id“对于B类和C类是常见的,因为B和C扩展了A。我
我是unity的新手,但是每当我创建一个变量时,都会出现一个错误。
它显示错误cs1525:意外的符号'public‘
这是我的脚本
using UnityEngine;
using System.Collections;
public class move : MonoBehaviour
{
// Use this for initialization
void Start ()
{
public float speed = 3.0f;
}
// Update is called once per frame
vo
我是C++的新手,只有很普通的C语言背景,所以如果这个问题看起来很初级,请原谅。
我目前已经得到了一些C++源代码,需要阅读和修改。
然而,在我看来,这些代码对于新手来说非常丑陋,但我不确定这些代码是否被认为是良好的C++实践。
基本上只有一个叫做存储的类,所有的信息都是公开的。
class STORAGE
{
public:
STORAGE();
virtual ~STORAGE();
//DATA
int np,nn;
int istep;
int print_step;
//...and many more variables.
//METHODS
根据面向对象的概念,封装被认为是定义的私有变量和公共的getter和setter方法。
示例:
public class Student {
private String name;
private int id;
public void setName(String name){
name = this.name;
}
public void setID(int Id){
id= this.id;
}
public String getName(){
return name;
}
public int getID(){
我想在静态函数dayInMonths()中调用数组的字段,但编译器告诉我“在静态函数中使用成员Date::m_months无效”。我不知道我做错了什么。
.h
class Date
{
public:
..
Months* m_months;
..
public:
Date(..,unsigned int months=0,..);
~Date();
public:
static Days daysInMonth(unsigned int days);
};
class Months
{
public:
unsigned int m_
我在访问另一个类的变量时遇到了困难。以下是我的变量:
public static byte agressivePoints = 0;
public static byte peacefullPoints = 0;
public static byte meanPoints = 0;
public static byte happyPoints = 0;
public static byte sadPoints = 0;
我把它们放在了我的主课之外。在这个类中,我绑定从另一个类访问这些变量,以便将它们放在这个类中。
public class Check_Anwser {
public s
我有以下类:
Class MyClass
Property MyInteger as Integer
Set(ByVal value as Integer)
_MyInteger = value
End Set
Get
Return _MyInteger
End Get
End Property
Private _MyInteger as Integer
End Class
因为我没有在我的属性中使用任何验证等,所以在这种情况下使用属性有什么好处,或者使用
这个问题主要是关于适当的Java术语。
我正在区分内部类(它绑定到其封闭作用域的实例)和非内部的嵌套静态类(它独立于封闭作用域实例)。
public class Example {
class Inner {
void f1() {System.out.println(Example.this); } // Inner class can access Example's this
}
static class StaticClass {
void f1() {System.out.println(this); } // Static nested class
namespace hi
{
class hithere
{
public int numberOne = 12;
public int numberTwo = 12;
static void yo()
{
public int numberThree = 12;
private int numberFour = 12;
}
}
}
谁能告诉我这段代码中的变量numberOne,numberTwo,numberThree和num
所以我有一个关于最佳实践的问题。基本上,我这样做是为了让访问不同类的成员更容易:
class myClass1 {
public static int var1;
public static String var2;
//...
public static void method1() {
//...
}
}
然后在其他类中,我可以使用myClass1.var1、myClass1.var2、myClass1.method1()来访问myClass1成员。我看到的另一个设计模式是根本不使用static,只使用myClass1 instance = new myClass1();,然后
class student
{
private :
int rollno;
char name[20];
public:
void change_stud()
{ cout<<"enter new roll no:";
cin>>rollno;
cout<<" new name ";
cin.getline(name,20);
}
void show_student()
{ cout<<ro