我知道如果类没有扩展任何其他类,那么它会隐式扩展Object类.
这是否意味着当我调用我的类构造函数时,Object也会调用基类的构造函数?
难道Object甚至有一个构造函数?
是否有可能使用指针(void指针?)迭代可变参数函数'参数到最后命名的参数?(我知道这不是使用可变参数的正确方法,但我仍然感兴趣,如果这可行)
设置指向字符串末尾的指针不起作用,因为在我开始移动指针后,它指向程序中使用的其他字符串.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void form_date(MON* datePtr, int dayMonth, int dayYear, int month);
MON* evaluate_date(MON* datePtr, int count, int dayArg);
void what_month(char *format, ...);
void output(MON* datePtr, int count);
int main(void)
{
what_month("ii", 126, 125);
return 0;
}
void what_month(char *format, ...){
char* arg_ptr = format+2;
int* arg_int_ptr;
double* arg_double_ptr;
MON dateArr[MAX_DATE];
int count = 0;
int dayYear;
char *ptrFormat = format;
for(; *ptrFormat != '\0'; ptrFormat++){
if(*ptrFormat == 'i'){
arg_int_ptr = (int*) arg_ptr;
dayYear = …Run Code Online (Sandbox Code Playgroud) 假设我有两个类:Animal和Zoo,它有包含Animal实例的私有List.
我想要返回迭代器的原因是为了避免定义setter和getter以及删除方法.
这会破坏封装吗?
class Zoo{
private List<Animal> animalList;
public Zoo(){
animalList = new ArrayList<Animal>();
}
public void addAnimal(Animal animal){
animalList.add(animal);
}
public Iterator<Animal> iterator(){
return animalList.iterator();
}
}
class Animal{
private String name;
private double weight, height;
Animal(String name, double weight, double height){
this.name = name;
this.weight = weight;
this.height = height;
}
}
Run Code Online (Sandbox Code Playgroud)