网站正在建设中敬请网络营销是学什么
Java基础学习
- 一 面向对象
- 1.1 介绍对象
- 1.2 设计对象并使用
- 1.2.1定义类的补充注意事项
- 1.3 封装
- 好处:
- 1.3 private关键字
- 1.4 this关键字
- 1.5 构造方法
- 构造方法的注意事项:
- 1.6 标准的JavaBean
- 1.7 对象内存图
- 1.7.1 一个对象的内存图
- 1.7.2 两个对象内存图
- 1.7.两个引用指向同一个对象
- 1.8 基本数据类型和引用数据类型
- 1.8.1 基本数据类型
- 1.8.2 引用数据类型
- 1.9 this的内存原理
- 键盘输入
一 面向对象
1.1 介绍对象
简单理解:
- 拿东西过来做对应的事情
- 获取对象并使用
1.2 设计对象并使用
- 类:是对象共同特征的描述
- **对象:**是真实存在的具体东西
如何得到类对象
类名 对象名 = new 类名():
Phone p = new Phone();
如何适用对象
- 访问属性:
对象名.成员变量
- 访问行为:
对象名.方法名(.......)
1.2.1定义类的补充注意事项
- 用来描述一类事物的类,专业叫做:
Javabean类
在Javabean类中,是不写main方法的。 - 在以前,编写main方法的类,叫做测试类我们可以在测试类中创建javabean类的对象并进行赋值调用
- 类名首字母建议大写,需要见名知意,驼峰模式
- 1个Java文件中可以定义多个cass类,目只能一个类是public修饰,而且pulic修饰的类名必须成为代码文件名实际开发中建议还是
一个文件定义一个class类
- 成员变量的完整定义格式是:
修饰符 数据类型 变量名称 =初始化值;
,一般无需指定初始化值,存在默认值
1.3 封装
如何正确的社会及对象的属性和方法
对象代表什么,就得封装对应的数据,并提供数据对应的行为
例如:人关门这一动作,关门这个动作行为是属于门的,因为人只是给了门一个作用力,导致门自己关上了
好处:
- 让编程变得很简单,有什么事,找对象,调方法就行。
- 降低我们的学习成本,可以少学、少记,或者说压根不用学,不用记对象有哪些方法,有需要时去找就行
1.3 private关键字
- 是一个权限修饰符
- 可以修饰成员(成员变量和成员方法)
- 被private修饰的成员只能在本类中才能访问
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;}
}
1.4 this关键字
作用:
可以区别成员变量和局部变量
就近原则
:
这个变量你谁近就听谁的
public class GirlFriend { //成员变量private int age;public void method(){//局部变量int age = 10;//谁近听谁的System.out.println(age);//先找成员变量System.out.println(this.age);}}
1.5 构造方法
格式:
特点:
1.方法名与类名相同,大小写也要一致
2.没有返回值类型,连void都没有
3.没有具体的返回值 (不能由retrun带回结果数据)
执行时机
1.创建对象的时候由虚拟机调用,不能手动调用构造方法
2.每创建一次对象,就会调用一次构造方法
构造方法的注意事项:
构造方法的定义
1 .如果没有定义构造方法,系统将给出一个默认的
2.无参数构造方法如果定义了构造方法,系统将不再提供默认的构造方法构造方法的重载
带参构造方法,和无参数构造方法,两者方法名相同,但是参数不同,这叫做构造方法的重载推荐的使用方式
无论是否使用,都手动书写无参数构造方法,和带全部参数的构造方法
1.6 标准的JavaBean
- 类名需要见名知意
- 成员变量使用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
1.7 对象内存图
1.7.1 一个对象的内存图
- 加载class文件
- 申明局部变量
- 在堆内存中开辟一个空间
- 默认初始化
- 显示初始化
- 构造方法初始化
- 将堆内存中的地址值赋值给左边的局部变量
1.7.2 两个对象内存图
1.7.两个引用指向同一个对象
如果改变stu1里面的值,那么stu2也会改变,因为赋值的时候,是把stu1里面的地址赋值给了stu2,所以他们指向的是同一个空间
1.8 基本数据类型和引用数据类型
1.8.1 基本数据类型
在变量中存储的真实数据
1.8.2 引用数据类型
存储的是数据的地址,可以通过地址去访问
1.9 this的内存原理
this的本质: 代表方法调用者的地址
this的作用:区分成员和局部变量
键盘输入
键盘录入
第一套体系:
nextInt(); 接收整数
nextDouble();接收小数
next();接收字符串
遇到空格,制表符,回车就停止接受。这些符号后面的数据就不会接受了
第二套体系:
nextLine();接收字符串
可以接收空格,制表符,遇到回车才停止接受数据