package com.hualan;
/*
*类的定义:具有相同特征(属性)和行为(方法)的一类事物的统称
*语法:
*public class 类名{
//实例变量(或成员变量)(属性)
数据类型 变量1;
数据类型 变量2;
....
//实例方法(或成员方法)(方法、功能、行为)
方法1;//此方法要去掉static关键字
方法2;//此方法要去掉static关键字
...
}
* 注意事项:
* 1.类是一个抽象的概念,因此在生活中不存在类,我们看到的都是对象,因此开发中参与运算,真正参与运算的是对象。
*2.类名使用大驼峰法命名,即每个单词首字母大写。
*3.实例方法不能用static修饰。
* */
public class Person {
/*
*Java中类的属性默认访问权限为包级权限,即同一个包中不同类之间可以访问,如果需要在其它包中访问当前属性,此时需要添加public访问修饰符
* 注意:常访问的的修饰符有三个
* public:公共的,此时属性可以在任意位置访问,此修饰符在使用时不够安全,违背面向对象封装的特性要求
* protected:受保护的,此时的属性值能够在当前类中或者子类中被访问的,但是不允许外界随意访问,此时该属性安全性比较高
* private:私有的,此时的属性只能被当前类自身访问,子类和外界都无法访问,此属性对应的安全等级最高*/
private String name;
private int age;
private String sex;
private String number;
private String address;
//getter方法:用来获取对象属性数值
public String getName() {
return name;
}
/*构造函数:用来完成对象的构建,同时将对象和this关键字进行绑定
* 1.构造函数名字与类名保持一致
* 2.构造函数不需要返回值并且也不需要定义返回值类型
* 3.构造函数在人为没有定义的情况下,系统会自动生成一个无参的构造函数
* 4.构造函数也支持方法重载
* 5.如果人为定义构造函数,此时系统不会在默认生成无参构造函数
* */
public Person(String name, int age, String sex, String number, String address) {
this.name = name;
this.age = age;
this.sex = sex;
this.number = number;
this.address = address;
}
//构造函数方法重载
public Person(){
}
public int getAge() {
return age;
}
public String getSex() {
return sex;
}
public String getNumber() {
return number;
}
public String getAddress() {
return address;
}
//setter方法:用来修改对象属性的数据
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
if (age>0&&age<150) {
this.age = age;
}else {
System.out.println("你输入的不合格,请重新输入!!!");
}
}
public void setSex(String sex) {
this.sex = sex;
}
public void setNumber(String number) {
this.number = number;
}
public void setAddress(String address) {
this.address = address;
}
public void eat(String food){
System.out.println("吃"+food);
}
public void sleep(){
System.out.println("睡觉");
}
}
package com.test;
import com.hualan.Person;
import java.util.Scanner;
public class personTest {
public static void main(String[] args) {
//创建对象,
//注意:null针对引用类型,当引用类型不存在,指向某一块空间的地址默认值为null
Person person1=new Person("张三",20,"男","3838438","阴阳路38号");
Person person2=new Person("李四",21,"女","1212412","阴阳路18号");
//对象的属性或者方法的访问方式是通过对象.方法,对象.属性进行访问
/*Scanner scanner=new Scanner(System.in);
System.out.print("输入第一个人的名字:");
String name1= scanner.nextLine();*/
//System.out.println();
//person1.setName(name1);
//定义一个新的对象,为name属性赋值为"张三“,最后调用eat方法完成吃榴莲操作
/*System.out.print("输入第二个人的名字:");
String name2= scanner.nextLine();
person2.setName(name2);*/
System.out.println(person1.getName()+" "+person1.getAge()+" "+person1.getSex()+" "+person1.getNumber()+" "+person1.getAddress());
person1.eat("香蕉");
System.out.println(person2.getName()+" "+person2.getAge()+" "+person2.getSex()+" "+person2.getNumber()+" "+person2.getAddress());
person2.eat("榴莲");
}
}