学习总结
Java学习内容:
构造器
一个项目应该只存一个main方法,新建一个类进行构造
public class Appication {
public static void main(String[] args) {
//new实例化了一个对象
person per=new person("huxiangxiang");
System.out.println(per.name);//null
}
}
2.有参构造
//有参构造:一旦定义了有参构造,无参必须显示定义
public person(String name){
this.name=name;
}
3.无参
public person(){
}
4.方法名和类名相同
没有返回值
5.作用
new本质再调用构造方法
初始化对象的值
6.注意点
定义有参构造后,想使用无参构造,显示的定义一个无参的构造
7.快捷键
构造参数使用 alt+insert
无参:constructor select none
有参:constructor ok
封装
private
优点:
- 良好的封装能够减少耦合。
- 类内部的结构可以自由修改。
- 可以对成员变量进行更精确的控制。
- 隐藏信息,实现细节。
属性私有 get,set
alt+insert ->get and set ->选择属性
学生类:
//类 private:私有
public class pri {
//属性私有
private String name;
private int id;
private char sex;
//不能直接引用
// 要通过 public 的get,set方法
//get获得数据
public String getname(){
return this.name;
}
//set 设置值
public void setname(String name){
this.name=name;
}
this
解决实例变量(private String name)和局部变量(setName(String name)中的name变量)之间发生的同名的冲突。
主类
//一个项目应该只存一个main方法
public class Appication {
public static void main(String[] args) {
pri p1=new pri();
//不能直接用p1.name;
//因为属性是私有的
p1.setname("hu");//先进行set
System.out.println(p1.getname());//在get值
}
}
继承
extends
私有的东西无法被继承
所有类是继承于 java.lang.Object
当一个类没有继承的两个关键字,则默认继承object(这个类在 java.lang 包中,所以不需要 import)祖先类。
申明一个类从另外一个类继承而来
class 父类 {
}
class 子类 extends 父类 {
}
继承类型
java支持多重继承,不支持多重继承
继承特性
单继承
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-D3jxaLh4-1626271447762)(C:\Users\HuEris\AppData\Roaming\Typora\typora-user-images\image-20210714191852018.png)]
punlic classA(){
.....
}
public classB() extends A{
}
多重继承
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qnl1SGL0-1626271447766)(C:\Users\HuEris\AppData\Roaming\Typora\typora-user-images\image-20210714192136456.png)]
punlic classA(){
.....
}
public classB() extends A{
}
public classC() extends B{
}
不同类继承同一类
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GaxVvnt8-1626271447769)(C:\Users\HuEris\AppData\Roaming\Typora\typora-user-images\image-20210714192315565.png)]
punlic classA(){
.....
}
public classB() extends A{
}
public classC() extends A{
}
不支持多继承
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tTVXOsdr-1626271447771)(C:\Users\HuEris\AppData\Roaming\Typora\typora-user-images\image-20210714192534678.png)]
punlic classA(){
.....
}
public classC() extends A,B{
}
implements
变相的使java具有多继承的特性,使用范围为类继承接口的情况,可以同时继承多个接口(接口跟接口之间采用逗号分隔)。
public interface A {
public void eat();
public void sleep();
}
public interface B {
public void show();
}
public class C implements A,B {
}
super
实现对父类成员的访问
public Student() {
//隐藏:调用父类构造器
//调用父类构造器,必须在子类构造器第一行
super();
//this();
System.out.println("student无参执行了");
}
注意点
super 调用父类构造方法,必须在构造方法第一个
super 必须在只能出现在子类方法或者构造方法中
super和this不能同时调用构造方法
与this区别
代表对象不同
this:本身调用者这个对象
super:代表父类对象的应用
前提
this:没有继承也可使用
super:只有在继承条件下可以使用
构造方法
this():本类的构造
super():父类的构造
this
向自己的引用
javafx
下载可视化软件 sceneBUilder
1.idea新建javafx项目
2.右击sample.fxml ->open in sceneBUilder