我有一个类,它有一个名为_Parameters的哈希表的getter函数.
private Hashtable _Parameters = new Hashtable();
public Hashtable Parameters { get { return _Parameters; } }
Run Code Online (Sandbox Code Playgroud)
_Parameters未在代码中的任何其他位置引用.现在,由于没有setter函数,我认为这个类之外的任何东西都不能修改_Parameters存储的内容,只能读取它.然而事实并非如此.另一个类调用此代码(其中template是上面提到的类的实例)
template.Parameters[key] = parameters[key];
Run Code Online (Sandbox Code Playgroud)
这最终修改了_Parameters.这怎么可能?如果我们使用'='分配vales,setter函数是否只适用?
我有一个类,其中包含变量"artist"的getter和setter:
类:
public void setArtist(String artist) {
this.artist = artist;
}
public String getArtist() {
return artist;
}
Run Code Online (Sandbox Code Playgroud)
我想从这样的活动中调用setArtist:
活动1:
Playlist.setArtist(someString)
Run Code Online (Sandbox Code Playgroud)
但是eclipse告诉我,我需要将setArtist更改为static.我使用setter的重点是避免使用任何静态引用.我做错了什么,还是有另一种方法可以做到这一点?
定义AS3类时,可以使用隐式getter和setter来调用函数以进行简单的属性获取/设置操作.例如,我可以像这样创建一个温度等级:
public var celsius:Number;
public function get fahrenheit():Number {
return 9/5 * celsius + 32;
}
public function set fahrenheit(fahrenheit:Number):void {
celsius = 5/9 * (fahrenheit - 32);
}
Run Code Online (Sandbox Code Playgroud)
然后,我可以像任何其他财产一样获得/设定华氏温度:
temperature.fahrenheit = 69.2;
Run Code Online (Sandbox Code Playgroud)
这非常有用,但据我所知,它只适用于类定义中声明的属性.但是,我发现能够在动态创建的属性上定义getter和setter非常有用.像这样的东西:
var obj:Object = new Object();
obj._foo = "bar";
obj.foo = function get () { return this._foo; };
obj.foo = function set (foo:String) { this._foo = foo; };
Run Code Online (Sandbox Code Playgroud)
不幸的是,这样的语法不存在,所以我的问题是:是否有可能在AS3中动态创建属性getter和setter?
我想把一个空的输入/字符串变成null,但似乎我无法让它工作。下面是处理 $_POST 的类,
class post
{
public $data = array();
public function get($param, $default = null) {
if (!isset($this->data[$param])) {//not set, return default
return $default;
}
else if(isset($this->data[$param]) && $default === ''){//empty string
return null;
}
return $this->data[$param];
}
}
Run Code Online (Sandbox Code Playgroud)
例如,
$post = new post();
$test = $post->get('url','');
var_dump($test);
Run Code Online (Sandbox Code Playgroud)
我明白了,
string '' (length=0)
Run Code Online (Sandbox Code Playgroud)
但我想要null。是否可以?
我总是使用getter方法返回单个字段,我想知道我们是否可以使用getter返回Object.
我有,
class Student
{
int age
String name
public Student(int age,String name)
{
this.age=age;
this.name=name;
}
public Student getStudent()
{
// **how can I do this**
return studentObject;
}
Run Code Online (Sandbox Code Playgroud)
我用过 ,
public int getAge()
{
return age;
}
Run Code Online (Sandbox Code Playgroud)
很多时候我需要知道如何处理对象甚至我们可以做到与否.
我目前正在学习java,发现一些我在作业说明中找不到答案的东西。
该指令描述了 getter 和 setter 方法如下:
- getPic:返回图片(进攻性吸气剂)
- setPic:创建给定图片的副本(防守二传手)
我找不到进攻型进攻手和防守型二传手的含义的答案。
有人可以向我解释一下吗?
非常感谢!
我正在使用Angular7。我想在打字稿中获取并设置变量
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root'
})
export class LoginService {
public username:string;
public token:string;
public fullname:string;
constructor() { }
set setUser(val: string){
this.username = val;
}
set setToken(val:string){
this.token=val;
}
set setFullName(val:string){
this.fullname=val;
}
get getUser():string{
return this.username;
}
get getToken():string{
return this.token;
}
get getFullName():string{
return this.fullname;
}
}
Run Code Online (Sandbox Code Playgroud)
fLogin(user, pass) {
this.users.setUser=user;
}
Run Code Online (Sandbox Code Playgroud)
import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';
import { Http, Headers } from "@angular/http";
import …Run Code Online (Sandbox Code Playgroud) 为什么当我们有这个
function Car() {
const fuel = 50
return {
fuel,
}
}
const car = Car()
console.log(car.fuel) // 50
car.fuel = 3000
console.log(car.fuel) // 3000
Run Code Online (Sandbox Code Playgroud)
如果我们添加一个吸气剂,则燃料属性无法被静音:
function Car() {
const fuel = 50
return {
get fuel() {
return fuel
},
}
}
const car = Car()
car.fuel = 3000
console.log(car.fuel) // 50
Run Code Online (Sandbox Code Playgroud)
但是,如果我在一个孤立的对象上尝试它,它不会以同样的方式工作:
const person = {
_firstName: 'John',
_lastName: 'Doe',
get fname() {
return this._firstName;
}
}
console.log(person.fname); // prints 'John'
person._firstName = 'Juan';
console.log(person.fname); //prints 'Juan' …Run Code Online (Sandbox Code Playgroud) 让我们假设我有一个具有短定义的getter setter的字段,如下所示:
public double MyDouble { get; set; }
Run Code Online (Sandbox Code Playgroud)
我想检查这个MyDouble值是否设置.我不能这样检查:
if(MyDouble == null) .... else ....
Run Code Online (Sandbox Code Playgroud)
因为double变量不能获得null值.那么如果设置与否,我怎么能检查这个值呢?我是否必须使用保持isSet状态的第二个变量,或者double类型是否有任何默认值?
谢谢.
标题描述了我正在尝试做的事情,但我收到的错误消息是我从未声明过base1.我实际上知道这一点,但我不确定如何真正解决问题.
int getBase1(void);
int setBase1(double);
int main(void){
getBase1();
setBase1(base1);
}
int getBase1(void){
printf("Please enter the length of a base: ");
return;
}
int setBase1(double base1){
scanf("%lf", &base1);
}
Run Code Online (Sandbox Code Playgroud) getter-setter ×10
c# ×2
getter ×2
java ×2
accessor ×1
android ×1
angular ×1
c ×1
hashtable ×1
javascript ×1
null ×1
php ×1
printf ×1
scanf ×1
typescript ×1