对象的学习第一天
-
使用new关键字创建对象
-
使用new关键字创建的时候,除了分配内存空间之外,还会给创建好的对象进行默认的初始化以及对类中构造器的调用
-
类中的构造器也叫做构造方法,是在创建对象时必须要调用的,并且构造器有以下两个特点:
(1)必须和类的名字相同
(2)必须没有返回类型,也不能写void
//文件夹1
erson person = new person(); //一个类什么都不写,也会存在一个构造方法,文件中默认加入一个方法
2:
public class person {
public person() { } }
//构造器
//构造器的作用:1.使用new关键字,本质是在调用构造器 2.用来初始化值
package com.opp.Demo02;
public class person01 {
String name;
//无参构造
public person01(){
this.name = "longtianc";
}
/*public static void main(String[] args) {
//实例化了一个对象 new
person01 person01 = new person01();
System.out.println(person01.name); //longtianc
}
*/
package com.opp.Demo02;
public class person01 {
String name;
//无参构造
public person01() {
}
//有参构造:一旦定义了有参构造,无参就必须要求也定义
//无参构造可以空置,但是必须要构造
public person01 (String name1) {
this.name = name1;
}
/* public static void main(String[] args) {
//实例化了一个对象 new
person01 person01 = new person01(); //没有输入
System.out.println(person01.name); //null
}
*/
package com.opp.Demo02;
public class person01 {
String name;
public person01() {
}
//有参构造:一旦定义了有参构造,无参就必须要求也定义
//无参构造可以空置,但是必须要构造
public person01 (String name1) {
this.name = name1;
}
}
/*public static void main(String[] args) {
//实例化了一个对象 new
person01 person01 = new person01("longshen"); //输入参数,直接走有参构造,不走无参构造
System.out.println(person01.name); //longshen
}
Alt+insert快捷键
构造器:
1. 和类名相同
2. 没有返回值
作用:
1.使用new关键字,本质是在调用构造器
2.用来初始化值
注意点:
this. 是这个类的
*/
Alt+insert默认生成有参无参构造器
package com.opp.Demo03;
public class Pet {
public String name;
public int age;
public void shout(){
System.out.println(name+"叫了一声");
}
}
package com.opp.Demo02;
import com.opp.Demo03.Pet;
public class Application {
public static void main(String[] args) {
//类 名字 = new 类();
Pet dog = new Pet();
//名字.参数 = 赋值
dog.name = "旺财";
dog.age = 3;
dog.shout();//旺财叫了一声
System.out.println(dog.name);
System.out.println(dog.age);
Pet cat = new Pet();
cat.name = "加菲猫";
cat.age = 2;
cat.shout();//加菲猫叫了一声
}
}
//封装
package com.opp.Demo04;
//类 private:私有,别的文件夹调用会出错
/*
1.提高系统的安全性,保护数据
2.隐藏代码的实现细节
3.统一接口
4.系统可维护性增加
*/
public class Student
{
private String name;//名字
private int id;//学号
private char sex;//性别
private int age;
//提供一些可以操作的方法 public中的get、set方法
//get 获得这个数据
public String getName()
{
return this.name; //就可以调用了,形式: main方法new出的名字. getName();
}
//set 给这个数据设置值
public void setName (String name)
{
this.name = name;
}
public int getAge()
{
return age;
}
public void setAge(int age)
{
if(age>120 || age<0) //不合法
{
this.age = 3;
} else
{
this.age =age;
}
}
/*package com.opp.Demo02;
import com.opp.Demo03.Pet;
import com.opp.Demo04.Student;
public class Application {
public static void main(String[] args) {
Student s1 = new Student();
s1.setName("天赐");
System.out.println(s1.getName());
s1.setAge(999); //不合法用IF判断
System.out.println(s1.getAge());
}
}
*/
//可以使用快捷键 Alt+insert 中的get and set进行
// public int getId() {
// return id;
// }
//
// public void setId(int id) {
// this.id = id;
// }
浙公网安备 33010602011771号