/**
* 面对对象基础
* 程序:为了模拟现实世界,解决现实问题而用计算机语言编写的指令集合
* 面对对象思想:万物皆对象
* 对象特性:都有自己的特征(属性)和行为(方法)
* 局部变量:存放在方法内部;无默认值,不允许重名 有效期:从定义行到包含其结构
* 事例变量:类的内部,方法外部;字面值,不允许与实例变量重名,可与局部变量重名,局部变量优先
* 作用域:属性的有效范围;在不同属性的作用域产生交集时;在交集处作用域小的优先于作用域大的
*/
1 public class Test {
2 //1、类的叙述,对象的创建,以及方法调用
3 public static void main(String[] args) {
4 Dog mydog = new Dog(); //基于Dog类创建对象mydog
5 //访问属性
6 mydog.name = "哈士奇"; //姓名
7 mydog.age = 2; //年龄
8 mydog.sex = "公"; //性别
9 // \n :换行符 \t : 空格符
10 System.out.println(mydog.name+"\n"+mydog.age+"\n"+mydog.sex);
11 //调用方法
12 mydog.eat();
13 }
14 }
15 //一个简单的类 Dao:类名
16 class Dog{
17 //特征:属性
18 String name; //姓名
19 Integer age; //年龄
20 String sex; //性别
21 //eat:行为(方法)
22 public void eat(){
23 System.out.println("eating...");
24 }
25 }
//2、方法重载:一个类中定义多个相同名称的方法
// 重载要求:方法名相同;
// 参数列表不同(类型、个数、顺序);
// 与返回修饰符,返回值无关
//例如:人对象的“吃”方法:吃饭,吃药,吃口香糖的过程就存在差异
1 class Person{
2 public void eat(int a,int b) {
3 //吃饭过程:把食物放入口中,咀嚼,咽下
4 System.out.println("相加结果为:"+(a+b));
5 }
6 public void eat(int a,int b,int c) {
7 //吃药过程:把药物放入口中,喝水,咽下
8 System.out.println("相加结果为:"+(a+b+c));
9 }
10 public void eat(int a,int b,int c,int d) {
11 //吃口香糖过程:把口香糖放入口中,咀嚼,吐出
12 System.out.println("相加结果为:"+(a+b+c+d));
13 }
14 }
//3、构造方法:类中的特殊方法;主要用于创建对象
// 特点:名称与类名完全一致;
// 没有返回值类型
// 创建对象时,触发构造方法的调用,不可通过句点手动调用
// 构造方法: 分为无参构造和有参构造;默认提供无参构造
// 构造方法重载:构造方法也可以重载,遵循重载规则
1 class Student{
2 private Integer id; //id
3 private String name; //名字
4 private Integer age; //年龄
5 private String sex; //性别
6 private Date birthday; //生日
7 //无参构造
8 public Student(){}
9 //有参构造
10 public Student(Integer id, String name, Integer age, String sex, Date birthday) {
11 //this:类中的默认引用,代表当前实例
12 this.id = id;
13 this.name = name;
14 this.age = age;
15 this.sex = sex;
16 this.birthday = birthday;
17 }
18 }