C#














生成






重新生成
c#程序结构
csharp
//1个解决方案 可以有多个程序集
//命名空间 //可以包含多个namespace
namespace ConsoleApp1
{
internal class Program//类定义 程序内部类 program 可以有多个类
{//string[] args当前方法需要传入的参数
//c程序的执行入口必须是static void main
static void Main(string[] args)//仅有一个 //方法体
{//逻辑代码
Console.WriteLine(">>Hello, World!");//结束符 //>> 输出并换行
Console.Write("ss");
}//逻辑性错误通过调试执行
}
}

JAVA
基类
父类、超类 被其他类继承的类 所有的类都继承自Object
java
public class ObjectMethods extends Object {
public static void main(String[] args){
Object ob1=new Object();
Object ob2=new Object();
System.out.println("toString:"+ob1.toString());
System.out.println("equals:"+ob1.equals(ob2));
}
}

java
public class Animal {
protected String name;
protected int age;
public Animal(String name,int age){
this.name=name;
this.age=age;
}
public void eat(){
System.out.println(name+"eating....");
}
public void makeSound(){
System.out.println("making noise");
}
public String getName(){
return name;
}
public void setName(String name){
this.name=name;
}
public int getAge(){
return age;
}
public void setAge(int age){
this.age=age;
}
@Override
public String toString() {
return "Animal{name='" +name+"', age=" +age +"}";
}
}
java
public class Dog extends Animal{
private final String breed;
public Dog(String name, int age, String breed) {
super(name, age);//怎么理解super
this.breed=breed;
}
public void makeSound(){
System.out.println(name+"bak");
}
public void guard(){
System.out.println(name+"baking...");
}
}
java
public class Cat extends Animal{
private int lives=9;
public Cat(String name, int age) {
super(name, age);
}
@Override
public void makeSound() {
// super.makeSound();
System.out.println(name+"miaomiaomiao");
}
public void climbTree(){
System.out.println(name+"climbing");
}
public int getLives(){
return lives;
}
}

抽象类有点忘了
传参问题
java
import java.lang.reflect.InvocationTargetException;
public class Test {
public static void main(String[] args) {
ObjectToStringConverter converter = new ObjectToStringConverter();//对象
Student student = new Student("ZHANG", 20);
School school = new School("89");
Game game = new Game("lOL");
System.out.println("Test objectToString方法");
try {
String studentStr = converter.objectToString(student);//传参,这个比较高级 student为啥可以这样传
String schoolStr = converter.objectToString(school);
String gameStr = converter.objectToString(game);
String nullStr = converter.objectToString(null);
System.out.println();
} catch (NoSuchFieldException e) {
throw new RuntimeException(e);
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
} catch (InvocationTargetException e) {
throw new RuntimeException(e);
} catch (NoSuchMethodException e) {
throw new RuntimeException(e);
} catch (InstantiationException e) {
throw new RuntimeException(e);
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
}
try {
String studentName = converter.getObjectNameField(student);
String schoolName = converter.getObjectNameField(school);
String gameName = converter.getObjectNameField(game);
String nullName = converter.getObjectNameField(null);
System.out.println("STUDEN's name=" + studentName);
System.out.println("SCHOOL'S name=" + schoolName);
System.out.println("GAME'S name=" + gameName);
System.out.println("NULL'S name=" + nullName);
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
try {
Object obj = new Object();
String result = converter.getObjectNameField(obj);
System.out.println("Object的name:" + result);
} catch (Exception e) {
System.out.println("错误:" + e.getMessage());
}
}
}
java
// Student 是 Object 的子类
Student student = new Student("ZHANG", 20);
// 向上转型:子类对象可以自动转换为父类引用
Object obj = student; // ✅ 完全合法,自动转换
// 所以可以直接传递给期望Object参数的方法
String studentStr = converter.objectToString(student);
为什么student类是object类的子类对对对变成 调用objectToString方法 //Object类是所有类的父类
//定义了ObjectToStringConver类的一个对象 所以可以使用objectToString方法,入参是Object