简单理解:
- 拿东西过来做对应的事情
- 获取对象并使用
类名 对象名 = new 类名():
Phone p = new Phone();
如何适用对象
- 访问属性:
对象名.成员变量
- 访问行为:
对象名.方法名(.......)
Javabean类
在Javabean类中,是不写main方法的。
- 类名首字母建议大写,需要见名知意,驼峰模式
- 1个Java文件中可以定义多个cass类,目只能一个类是public修饰,而且pulic修饰的类名必须成为代码文件名实际开发中建议还是
一个文件定义一个class类
- 成员变量的完整定义格式是:
修饰符 数据类型 变量名称 =初始化值;
,一般无需指定初始化值,存在默认值
如何正确的社会及对象的属性和方法
对象代表什么,就得封装对应的数据,并提供数据对应的行为
例如:人关门这一动作,关门这个动作行为是属于门的,因为人只是给了门一个作用力,导致门自己关上了
public class GirlFriend {private String name;private int age;private String gender;
}
会使得数据无法改变,我们应该用以下代码实现对数据的修改判断
set方法: 给成员变量赋值
get方法: 对外提供成员变量的值
public class GirlFrend {public int age;//作用: 给成员变量name进行赋值的public void setAge(int a){if(a>=18 && a<50){age = a;}else{System.out.println("非法数据");}}//作用:对外提供name属性的public int getAge(){return age;}
}
作用:
可以区别成员变量和局部变量
就近原则
:
这个变量你谁近就听谁的
public class GirlFriend { //成员变量private int age;public void method(){//局部变量int age = 10;//谁近听谁的System.out.println(age);//先找成员变量System.out.println(this.age);}}
格式:
特点:
1.方法名与类名相同,大小写也要一致
2.没有返回值类型,连void都没有
3.没有具体的返回值 (不能由retrun带回结果数据)
执行时机
1.创建对象的时候由虚拟机调用,不能手动调用构造方法
2.每创建一次对象,就会调用一次构造方法
构造方法的定义
1 .如果没有定义构造方法,系统将给出一个默认的
2.无参数构造方法如果定义了构造方法,系统将不再提供默认的构造方法构造方法的重载
带参构造方法,和无参数构造方法,两者方法名相同,但是参数不同,这叫做构造方法的重载推荐的使用方式
无论是否使用,都手动书写无参数构造方法,和带全部参数的构造方法
- 类名需要见名知意
- 成员变量使用private修饰
- 提供至少两个构造方法
1.无参构造方法
2.带全部参数的构造方法- 成员方法
1.提供每一个成员变量对应的setXxx()/getXxx()
2.如果还有其他行为,也需要写上
public class User {private String Username;private String Password;private String Email;private int age;public User() {}public User(String Username, String Password, String Email, int age) {this.Username = Username;this.Password = Password;this.Email = Email;this.age = age;}/*** 获取* @return Username*/public String getUsername() {return Username;}/*** 设置* @param Username*/public void setUsername(String Username) {this.Username = Username;}/*** 获取* @return Password*/public String getPassword() {return Password;}/*** 设置* @param Password*/public void setPassword(String Password) {this.Password = Password;}/*** 获取* @return Email*/public String getEmail() {return Email;}/*** 设置* @param Email*/public void setEmail(String Email) {this.Email = Email;}/*** 获取* @return age*/public int getAge() {return age;}/*** 设置* @param age*/public void setAge(int age) {this.age = age;}
快捷键:
- alt+inset 进行创建
- 添加插件ptg(推荐很香)
点击settings
右键点击JavaBean
如果改变stu1里面的值,那么stu2也会改变,因为赋值的时候,是把stu1里面的地址赋值给了stu2,所以他们指向的是同一个空间
在变量中存储的真实数据
存储的是数据的地址,可以通过地址去访问
this的本质: 代表方法调用者的地址
this的作用:区分成员和局部变量
键盘录入
第一套体系:
nextInt(); 接收整数
nextDouble();接收小数
next();接收字符串
遇到空格,制表符,回车就停止接受。这些符号后面的数据就不会接受了
第二套体系:
nextLine();接收字符串
可以接收空格,制表符,遇到回车才停止接受数据