package last302; public class Bleiyuduixiangchuanjian1 { public static void main(String[] args) { //创建对象的格式: Person p =new Person(); //对象属性赋值 //格式 : 对象名.属性名 =值; p.name="赵新坤"; p.age=22; p.sex='男'; p.say(); int s =p.sum(1124,813); System.out.println(s); } } /** * 类就是图纸 * */ //书写创建类 class Person{ //属性 --特性 String name; int age; char sex; //方法 -- 行为 /** * 定义格式: * 返回值类型 方法名称(形式参数表){ * 方法体 * return 返回值; * } * * * 调用格式: * 对象名.方法名称(实际参数列表); * * */ //空返回值方法 void say(){ System.out.println("我的名字叫做:"+name+"我的年龄为:"+age+"我的性别是:"+sex); }; //有返回值类型的方法 int sum(int x,int y) { int z =x+y; return z; }; }
package last302; public class Cduixiangchuangjianbuchong { public static void main(String[] args) { Book b1 = new Book(); Book b2 = new Book(); b1.name = "金苹果"; b1.info = "讲述了果农种植金色苹果的辛勤路程。"; b2.name = "银苹果"; b2.info = "讲述了果农种植银色苹果的辛勤路程。"; b1.say(); b2.say(); } } class Book{ String name; String info; void say() { System.out.println("书的名字叫:"+"书的简介:"+info); } }
此处涉及栈,堆,以及方法区的知识,请自行了解,谢谢。
package last302; public class Dduixiangchaungjianneicun { public static void main(String[] args) { Boook b1 = new Boook(); b1.name = "金瓶梅"; b1.info = "教育书籍"; b1.say(); Boook b2 = b1; b2.name = "嘿嘿嘿"; b1.say(); } } class Boook{ String name; String info; void say(){ System.out.println("书名:"+name+",简介:"+info); } }
package last302; public class Eduixiangchuanjianneicun03 { public static void main(String[] args) { red b1 = new red(); b1.name = "金瓶梅"; b1.info = "嘿嘿嘿"; red b2 = new red(); b2.name = "水浒传"; b2.info = "梁山好汉的故事"; b2 = b1; b2.name = "西游记"; b1.say(); //此处主要讲解的就是关于栈,堆,以及方法区的细节以及GC垃圾回收的机制问题 } } class red{ String name; String info; void say() { System.out.println("书名"+name+",简介:"+info); } }
//案例 public class Demo3{ public static void main(String[] args){ Person p = new Person(); p = new Person(); p = new Person(); p = new Person(); } } class Person{ public Person(){ System.out.println("对象创建时,此方法调用"); } }
package last302; public class Fgouzaofangfa { public static void main(String[] args) { System.out.println("1"); Person2 p1 = new Person2("我是张三啊"); System.out.println("2"); //p1.name = "张三"; p1.age = 18; p1.say(); } } class Person2{ //此处当我们没有设置构造方法的时候,系统会自动声称一个无参的构造方法 String name; int age; //现在我们自己设置一个有参的构造方法试试 Person2(String n){ //System.out.println("我执行了"); name = n; } void say(){ System.out.println("自我介绍。我是"+name+"我的年龄为:"+age); } }
注意:
建议自定义无参构造方法,不要对编译器形成依赖,避免错误发生。 当类中有非常量成员变量时,建议提供两个版本的构造方法,一个是无参构造方法,一个是全属性做参数的构造方法。 当类中所有成员变量都是常量或者没有成员变量时,建议不提供任何版本的构造。重载条件:
方法名称相同 , 参数类型或参数长度不同 , 可以完成方法的重载 ! 方法的重载与返回值无关 ! 方法的重载 , 可以让我们在不同的需求下 , 通过传递不同的参数调用方法来完成具体的功能。package last302; public class Gfnagfadechongzai { public static void main(String[] args) { Math b1 = new Math() ; int num = b1.sum(100, 120); System.out.println(num); double num2 = b1.sum(100.11, 120.22); System.out.println(num); } } /** * 关于方法的重载问题 * 首先类的命名要规范,做到见明知意 * * * 一个类中定义的方法,是允许重载(相同的方法名称) * * 1.方法名称相同 * 2.参数列表长度 或参数列表类型 或(参数类型顺序不同) * * 注意:与返回值类型无关*/ class Math{ int sum(int x, int y){ int z = x +y; return z; } double sum(double x, double y){ double z = x +y; return z; } double sum(double y ,int x) { double z = x + y; return z; } }
package last302; public class Hgouzaofangfadechongzai { /** * 一个类, 可以存在多个构造方法 : * 参数列表的长度或类型不同即可完成构造方法的重载. * 可以让我们在不同的创建对象的需求下, 调用不同的方法来完成对象的初始化! * */ public static void main(String[] args) { Person3 z = new Person3("张三",18); z.say(); Person3 x = new Person3("赵四"); x.say(); } } class Person3 { Person3(String name2,int age2){ name = name2; age = age2; } Person3(String name2){ name = name2; } String name; int age; void say() { System.out.println("name is" +name+"age is"+age); } }
package last302; public class Inimingduixiang { //匿名对象就是没有名字的对象 public static void main(String[] args) { //按照平时的习惯,我们一定会这样来声明和调用对象 /** *Math2 m = new Math2(); *int num = m.sum(100, 200); * System.out.println(num); * */ //现在书写一个新的,没有名字的对象直接调用方法 int num = new Math2().sum(100, 200); System.out.println(num); } } //首先写一个类 class Math2{ int sum(int x,int y) { return x+y; } }
package last302; public class Jnimingduixiang2 { public static void main(String[] args) { //创建对象误区 new Person4().name = "张三"; new Person4().age = 18; new Person4().say(); //像这样就是不对的,因为这样去创建的话就相当于在堆内存中创建了三个不同的空间 } } class Person4{ String name; int age; void say() { System.out.println("自我介绍:"+name+"年龄为"+age); } }