赞
踩
目录
- package step1;
-
- public class Test {
- public static void main(String[] args) {
- /********** Begin **********/
- //创建Dog对象
- Dog wuhuarou = new Dog();
- //设置Dog对象的属性
- wuhuarou.name = "五花肉";
- wuhuarou.color = "棕色";
- wuhuarou.variety = "阿拉斯加";
- //输出小狗的属性
- System.out.println("名字:" + wuhuarou.name + ",毛色:" + wuhuarou.color + ",品种:" + wuhuarou.variety);
- //调用方法
- wuhuarou.eat();
- wuhuarou.run();
- /********** End **********/
- }
- }
- //在这里定义Dog类
- /********** Begin **********/
- class Dog{
- String name;
- String color;
- String variety;
-
- void eat(){
- System.out.println("啃骨头");
- }
-
- void run(){
- System.out.println("叼着骨头跑");
- }
- }
- /********** End **********/
- package step2;
-
- import java.util.Scanner;
-
- public class Test {
- public static void main(String[] args) {
- Scanner sc = new Scanner(System.in);
- String name = sc.next();
- String sex = sc.next();
- /********** Begin **********/
- //分别使用两种构造器来创建Person对象
- Person p = new Person();//括号别漏了
- System.out.println ("一个人被创建了");//println()
- System.out.println ("姓名:" + name +",性别:"+ sex + ",被创建了" );
- /********** End **********/
- }
- }
-
- //创建Person对象,并创建两种构造方法
- /********** Begin **********/
- class Person{
- String name;
- String sex;
- //方法一:无参构造
- void Person(){
- }
- //方法二:有参构造
- void Person(String name,String sex){
- this.name = name;
- this.sex = sex;
- }
- }
- /********** End **********/
本关任务:使用this
关键字,设置对象的成员变量。
输出结果: 传入的name:李四age:10
student属性name:张三age:18
上述结果我们可以发现一个问题,在构造方法中name
和age
并没有设置成功,stu
对象的name
属性和age
属性的值还是默认定义好的张三
和18
。
怎么解决这个问题呢?你需要学习两个知识点:
1.什么是成员变量; 2.this
关键字。
成员变量就是对象的属性:
关于this
关键字,你只需要记住它就是指自身,this
即代表自己,this.属性
访问的是自己的属性、this()
访问的就是自己的无参构造方法。
例1:this.属性
例2:this.属性,this()
输出: I am
张三
可以发现,如果我们把上述this.name = name
改为 name = name
,那么最终的结果就变成了: I am
null
this()
调用的是Person
自己的无参构造方法,this.name
访问的是Person
对象自身的name
,而方法参数中的name
则表示方法传入的值。
- package step3;
-
- import java.util.Scanner;
-
- public class Test {
- public static void main(String[] args) {
- Scanner sc = new Scanner(System.in);
- String name = sc.next();
- int age = sc.nextInt();
- String sex = sc.next();
- Person p = new Person(name,age,sex);
- p.display();
- }
- }
-
- class Person{
- String name = "张三";
- int age = 18;
- String sex = "男";
- /********** Begin **********/
-
- public Person(String name,int age,String sex){
- this(age);
- this.name = name;//加上this.
- this.sex = sex;//加上this.
- }
-
- public Person(int age){
- this.age = age;//加上this.
- }
-
- public void display(){
- //String name = "李四";
- //int age = 11;
- //String sex = "男";
- System.out.println("name:" + name);
- System.out.println("age:" + age);
- System.out.println("sex:" + sex);
- }
-
-
- /********** End **********/
- }
- package step4;
-
- import java.util.Scanner;
-
- public class Test {
-
- public static void main(String[] args) {
- Scanner sc = new Scanner(System.in);
- String theMa = sc.next();
- int quantity = sc.nextInt();
- boolean likeSoup = sc.nextBoolean();
- /********** Begin **********/
- //使用三个参数的构造方法创建WuMingFen对象 取名 f1
- //便于简化初始化过程
- WuMingFen f1 = new WuMingFen(theMa, quantity, likeSoup);
- //使用两个参数的构造方法创建WuMingFen对象 取名 f2
- //重载构造方法,使得初始化过程可以多样化
- WuMingFen f2 = new WuMingFen(theMa,quantity);
- //使用无参构造方法创建WuMingFen对象 取名 f3
- WuMingFen f3 = new WuMingFen();
- f3.theMa = "酸辣";
- f3.quantity = 2;
- f3.likeSoup = true;
- //分别调用三个类的 check方法
- f1.check();
- f2.check();
- f3.check();
- /********** End **********/
- }
- }
如果一个类被定义在某一个包下那么在定义类的时候需要声明包名,否则程序会报错。
- /********** Begin **********/
- //在这里添加包名 step4
- package step4;
- //创建类 添加属性和方法
- public class WuMingFen{
- String theMa;//属性1
- int quantity;//属性2
- boolean likeSoup;//属性3
- public WuMingFen(){}//方法
- //1
- public WuMingFen(String theMa,int quantity,boolean likeSoup){
- this.theMa = theMa;
- this.quantity = quantity;
- this.likeSoup = likeSoup;
- }
- //2
- public WuMingFen(String theMa,int quantity){
- this.theMa = theMa;
- this.quantity = quantity;
- }
- //3
- 写一个普通方法:check(),用于查看粉是否符合要求。即:将对象的三个属性打印在控制台上。
- public void check(){
- System.out.println("面码:" + theMa + ",粉的份量:"+ quantity + "两,是否带汤:" + likeSoup);
- }
- }
- /********** End **********/
- package step5;
-
- public class Test {
- /********** Begin **********/
- static String name = "楚留香"; //修饰静态变量
- static //静态导包
- {
- System.out.println("hello educoder");
- }
- public static void main(String[] args) {
- System.out.println("我叫" + name);
- study();
- }
-
- public static void study(){ //修饰变量
- System.out.println("我喜欢在educoder上学习java");
- }
- /********** End **********/
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。