简单理解:
- 拿东西过来做对应的事情
- 获取对象并使用
类名 对象名 = 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;
}
快捷键:
如果改变stu1里面的值,那么stu2也会改变,因为赋值的时候,是把stu1里面的地址赋值给了stu2,所以他们指向的是同一个空间
在变量中存储的真实数据
存储的是数据的地址,可以通过地址去访问
this的本质: 代表方法调用者的地址
this的作用:区分成员和局部变量
键盘录入
第一套体系:
nextInt(); 接收整数
nextDouble();接收小数
next();接收字符串
遇到空格,制表符,回车就停止接受。这些符号后面的数据就不会接受了
第二套体系:
nextLine();接收字符串
可以接收空格,制表符,遇到回车才停止接受数据