前言
这几天跑到了上海,期间又要看房又要打探一下周边的美食,导致这几天来java自学的中断。
又因为后面的内容粗略的浏览过,难度也在逐渐提高,学懂学透直至会用的时间周期可能会越来越长。
不过,怎么能被这种还没有发生的事情所吓倒呢,加油。
重点:
1. javabean 书写规范
例子:
package com.baidu.javase05; public class YuanGong { private String name; //成员变量私有化 private int age; private double salary; public YuanGong() {} //无参构造方法 //提供相应的get、set方法 public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public double getSalary() { return salary; } public void setSalary(double salary) { this.salary = salary; } //自动生成和成员变量相对应的有参构造方法 public YuanGong(String name, int age, double salary) { super(); this.name = name; this.age = age; this.salary = salary; } }
2. 同名局部变量和成员变量的调用问题
例子:
public class People { String name = "张三"; public void print() { System.out.println(name); } public void print(String name) { System.out.println(name); } public void print1(String name) { System.out.println(this.name); } public static void main(String[] args) { People p = new People(); //首先创建实例p System.out.println(p.name); //因为name有初始值,打印出来的结果是“张三” p.name = "李四"; p.print(); //上一步name赋值为“李四”,因此打印出来的结果是“李四” p.print("王五"); //打印输入的参数,打印出来的结果是“王五” p.print1("赵六"); //this.打印的是成员变量,打印出来的结果是“李四” } }
3. static关键字
public class StaticDemo { int a= 1; static int b= 2; //静态方法中只能调用static修饰的int b,调用a的话需要创建对象 public static void main(String[] args) { int c; //不能print,因为局部变量不赋初始值无法使用 System.out.println(b); System.out.println(StaticDemo.b); //类名调用 StaticDemo demo = new StaticDemo(); System.out.println(demo.a); } }
public class CodeBlockDemo { static int count = 0; static { System.out.println("执行静态代码块"); } { count++; System.out.println("执行构造代码块"); } public CodeBlockDemo() { System.out.println("执行一次无参构造方法"); } public CodeBlockDemo(int a) { System.out.println("执行一次有参构造方法"+ a); } public void print() { System.out.println("执行成员方法"); } public static void main(String[] args) { CodeBlockDemo c1 = new CodeBlockDemo(); CodeBlockDemo c2 = new CodeBlockDemo(10); //执行构造代码块+执行一次有参构造方法 CodeBlockDemo c3 = new CodeBlockDemo(20); CodeBlockDemo c4 = new CodeBlockDemo(); CodeBlockDemo c5 = new CodeBlockDemo(30); } }
public class ExtendsDemo { public static void main(String[] args) { SuperMan sm = new SuperMan(); sm.print(); System.out.println(sm.name); Man x = new Man(); x.print(); } } class SuperMan{ String name = "超人"; public SuperMan() { super(); } public SuperMan(int a) { } public void print() { System.out.println("这是父类的成员方法"); } } class Man extends SuperMan{ String name = "男人"; public Man () { super(); } public Man (int a) { this(); //调用本类中的无参构造方法 } public void print() { System.out.println("这是子类的成员方法"); } } class Woman extends SuperMan{ String name = "女人"; public Woman () { super(); } public Woman(int b) { super(1); } }
class Singleton{ private static Singleton s = new Singleton(); private Singleton() {} public static Singleton getInstance() { return s; } }
(这个需要再研究研究,有懂的大佬讲解一下吗 0.0)
后记
因为几天之前是有学过这部分七七八八的了,所以再总结一遍理解的更加深刻,总感觉和上一部分有重叠的地方,
或者是我在之前复习的部分已经写过,我也实在是有点搞混了,见谅见谅
原文:https://www.cnblogs.com/gzqcason/p/14839062.html