Java入门3
面向对象1
面向对象,更在乎的结果,而过程的实现并不重要
IDea快捷键(基础版)
快捷键 | 作用 |
---|---|
ctrl + / | 快捷注释 |
ctrl + shift + / | 多行注释 |
ctrl + d | 快速复制 |
ctrl + shift + up/down | 移动代码行数 |
ctrl + z | 撤回 |
ctrl + o | 快速重写父类函数 |
ctrl + alt + l | 自动格式化代码 |
⭐printf 格式化传参(输出)
参数 | 对应数据类型 |
---|---|
%d | 整型 |
%f | 浮点型 |
%s | 字符串 |
%b | 布尔型 |
%c | 字符型 |
%n | 换行 |
// pringln 字符串拼接输出
System.out.println("My name is " + this.name + "!");
// printf 格式化传参输出
System.out.printf("My name is %s!",this.name);
println 和 print 区别
println 可以自动换行,但是 print 不行,使用方法同 println 需要使用 + 进行字符串拼接
类(构造方法)
定义:对某些事物共性的抽取
// 定义Student类
// package com.iweb.demo02;
public class Student {
// 成员变量
public int sno;
public String name;
public Float height;
public char gender;
public boolean inSingle;
// 重写构造方法
public Student(int sno, String name, Float height, char gender, boolean inSingle) {
this.sno = sno;
this.name = name;
this.height = height;
this.gender = gender;
this.inSingle = inSingle;
}
// 成员方法
public void eat(){
System.out.println("Student => eat()");
}
// 重载eat方法
public void eat(String tmp){
System.out.println("Student => sat(tmp)");
}
}
// 主运行类
// package com.iweb;
import com.iweb.demo02.Student; // 引用类
public class Application {
public static void main(String[] args) {
Student student = new Student(1001,"robot01",185f,'男',true); // 实例化对象
// 调用成员方法
student.eat();
student.eat("food01");
}
}
在类里定义引用型变量
// 定义Person类
// package com.iweb.demo02;
public class Person {
public String name;
public String[] hobbies= {"123","123"};
public Dog dog;
public void display(){
System.out.print(this.name + " hobbies: ");
for(String hobby:this.hobbies){
System.out.print(hobby + " ");
}
System.out.println("\n My dog name is " + this.dog.name);
}
public void setDog(Dog dog) {
this.dog = dog;
}
public void setName(String name){
this.name = name;
}
}
// 定义Dog类
// package com.iweb.demo02;
public class Dog {
public String name;
public void run(){
System.out.println("run() => Dog");
}
public void setName(String name) {
this.name = name;
}
}
// 主运行类
// package com.iweb;
import com.iweb.demo02.Dog;
import com.iweb.demo02.Person;
public class Application {
public static void main(String[] args) {
Person person = new Person();
Dog dog = new Dog();
dog.setName("dog01");
person.setName("robot01");
person.setDog(dog);
person.display();
}
}
构造方法
无参构造
// 定义Robots类
// package com.iweb.demo02;
public class Robots {
// 机器人姓名
public String name;
// 制造商
public String manufacturer;
// 产量
public int yield;
// 无参构造
public Robots() {
this.name = "robot01";
}
}
有参构造
// 定义Robots类
// package com.iweb.demo02;
public class Robots {
// 机器人姓名
public String name;
// 制造商
public String manufacturer;
// 产量
public int yield;
// 有参构造
public Robots(String name, String manufacturer, int yield) {
this.name = name;
this.manufacturer = manufacturer;
this.yield = yield;
}
}
重载构造方法
让开发者选择不同的构造方法实例化对象
// 定义Robots类
// package com.iweb.demo02;
public class Robots {
// 机器人姓名
public String name;
// 制造商
public String manufacturer;
// 产量
public int yield;
// 无参构造
public Robots() {
this.name = "robot01";
}
// 有参构造
public Robots(String name, String manufacturer, int yield) {
this.name = name;
this.manufacturer = manufacturer;
this.yield = yield;
}
}
// 主运行类
// package com.iweb;
import com.iweb.demo02.Robots;
public class Application {
public static void main(String[] args) {
// 调用无参构造
Robots robots = new Robots();
// 调用有参构造
Robots robots1 = new Robots("robot01","factory01",10);
}
}