目录
public class newPlan{
//输出小刘、小王、小张的个人信息:自定义就好
public static void main(String[] args) {
Person person1 = new Person();//指示小刘
Person person2 = new Person();//指示小王
Person person3 = new Person();//指示小张
person1.name = "小刘";
person1.country = "中国";
person1.sex="男";
person2.name = "小王";
person3.name="小张";
person3.sex="女";
person2.height=175;
person3.height=165;
person1.println();//打印小刘的信息
person2.println();//打印小王的信息
person3.println();//打印小张的信息
System.out.println(person3.sex);//输出:女
System.out.println(person1);//输出:Person@4554617c
}
}
class Person<age> { //人类
String name;//成员变量
String sex;
String country;
int height;
void println() {
System.out.println("name: " + name + ",性别:"+sex+",country: " + country+",身高"+height);
}
}
//输出结果:
name: 小刘,性别:男,country: 中国,身高0
name: 小王,性别:null,country: 中国,身高175
name: 小张,性别:女,country: 中国,身高165
女
Person@4554617c
Process finished with exit code 0
static定义的变量在方法区中存储,成员变量被定义在堆中存储。
fina用于定义常量,可以和static一起定义,命名:static final String GOOD_BOY = “好孩子”;
主方法必须是静态的,没有static修饰是不及对象的。
封装的特性:两个重要的特性——保护性和易用性
private封起来就是加了一个保险柜的意思,易用性理解为黑匣子。
用于修饰类内的成员变量,只在类内部可见。
如果外部类需要调用黑匣子内的东西可以采用setter\getter
构造方法
目的是实例化对象:
1.为对象在堆中分配空间。
2.调用对象的构造方法为对象成员变量赋值。
3.自己不能调用自己构造
关键字new
语法--->
如果类名是Person,我实例化对象new Person(); 名字一致就行。
1个类中至少存在一个构造方法,若没有定义显示,编译器会默认生成一个无参构造。
构造方法的重载-->
构造方法可以重载,构造方法是为了类中的成员变量赋值的,重载只有参数个数不同
public class newPlan{
public static void main(String[] args) {
Person person = new Person();
Person person1 = new Person("小王",18);
Person person2 = new Person("小王",18,"男");
}
}
class Person {
String name;
int age;
String sex;
public Person() { //构造方法的重载
System.out.println("这是一个无参构造");
}
public Person(String name, int age) {
this.name = name;
this.age = age;
System.out.println("两个参数的有参构造");
System.out.println("name:" + name + " age:" + age);
}
public Person(String name, int age, String sex) {
this.name = name;
this.age = age;
this.sex = sex;
System.out.println("三个参数的有参构造");
System.out.println("name:" + name + " age:" + age + " sex:" + sex);
}
}
//输出:
这是一个无参构造
两个参数的有参构造
name:小王 age:18
三个参数的有参构造
name:小王 age:18 sex:男
.equals()方法
引用类型比较是否相等都用.equals()方法-->
public class newPlan {
public static void main(String[] args) {
String str1 = "11122222";
String str2 = "11111111";
String str3 = "11111111";
int count=1;
if(str1.equals(str2)){
count++;
System.out.println("str1与str2:"+count);
}
if (str2.equals(str3)){
count++;
System.out.println("str2与str3:"+count);
}
}
}
//结果:
str2与str3:2
this.--->
1调用当前对象的成员变量
2调用当前对象的方法
@1:构造方法中调用另一个构造方法,格式为this(参数);
3表示当前对象的引用
public class newPlan{
public static void main(String[] args) {
Student student=new Student("小刘",100,"男"); //new给他这里赋值了
student.show();
}}
class Student{
private String name;
private int age;
private String sex;
public Student(String name,int age,String sex){
/**
* 发现this.的作用就是跳出"就近匹配原则"
*/
this.name=name;
this.age=age;
this.show(); //this调用了show
sex=sex; //形参自己等于自己
System.out.println("Student类的有参构造");
}
public void show(){
System.out.println("name="+name+",age"+age+",sex"+sex);
}
}
/**输出:
name=小刘,age100,sexnull
Student类的有参构造
name=小刘,age100,sexnull
*/