java-learning-code
标题链接是我的github仓库地址,代码需要自取。
1. 类的学习
类: 具有某些共同属性或者共同功能的一类事物
对象:类的具体表现。
example:
package com.sugar.classLearning;
//定义Student类,
public class Student {
//Member variables
String name;
int age;
double height;
double weight;
//成员方法
public void showData(){
System.out.println("Name: " + name);
System.out.println("Age: " + age);
System.out.println("Height: " + height);
System.out.println("Wight :" + weight);
}
public int lovingDays(String theName){
if(theName != "Sugar"){
return 0;
}
else{
return 626;
}
}
}
定义了Student类,拥有name、age、weight、height这四个成员变量。
同时定义了showData、lovingDays成员方法。
调用:
/*
* Author:Sugar
* Date:19:44 in 18th.Mar.2020
* Learning java class and its method
*/
package com.sugar.classLearning;
import com.sugar.classLearning.Student; //导入类所在的包(同一包下可不导入)
public class Application {
public static void main(String[] args) {
Student daisy = new Student(); //定义类的对象daisy
daisy.name = "daisy";
daisy.age = 20;
daisy.height = 160;
daisy.weight = 47;
daisy.showData(); //调用类的成员函数和成员方法
int lovingDays;
String theName = "Sugar";
lovingDays = daisy.lovingDays(theName);
System.out.println(lovingDays);
}
}
首先创建*类的对象*
Student sugar = new Student();
Student daisy = new Student();
然后利用创建的对象,调用类的成员变量和成员方法,格式如下:
daisy.name = "daisy";
daisy.age = 20;
daisy.weight = 47;
daisy.showData();
2. private关键字:
权限大小关系:
public > protected > (default) > private
tips:default指不加任何修饰字。
example:
package com.sugar.privateLearning;
public class privateClass {
private int age;
String name;
/*每个用private修饰的成员变量不可直接访问,可通过setXxx来赋值,getXxx访问
*this : after this is added, it can represent "member variables"
*/
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
}
private关键字修饰的变量age,不能直接访问。
需要编写一堆Setter/Getter,来间接访问或者赋值。
调用:
/*
* Author:Sugar
* Date:19:46 in 18th.Mar.2020
* Learning private and how to use the variables decorated with pravate
*/
package com.sugar.privateLearning;
import com.sugar.privateLearning.privateClass;
public class Application {
public static void main(String [] args) {
privateClass sugar = new privateClass();
sugar.setAge(20); //通过setAge赋给private的成员变量20
System.out.println(sugar.getAge()); //通过getAge访问private变量
}
}
利用setAge给age赋值,利用getAge访问age。
3. 标准类的格式
一个标准类应该包括:
- 每个成员变量用private修饰
- 每个类编写一个无参数Construction Method,一个全参数Construction Method。
- 每个变量写一堆Getter/Setter
/*
*What you need to do is to write the member variablies and click the"Code"menu and select generate
* or command + N to add the method neeeded.
*/
package com.sugar.standardClass;
//A standard class
public class StandardClass {
//define all the member variables decorated with private
private String name;
private int age;
public void setName(String name) {
Write a setName method to value the member variables "name"
this.name = name;
}
public String getName() {
// Write a getName method to visit the member variables "name"
return name;
}
public void setAge(int age) {
Write a setName method to value the member variables "age"
this.age = age;
}
public int getAge() {
// Write a getName method to visit the member variables "age"
return age;
}
public StandardClass(String name, int age) {
// a constrction method with all parames
this.name = name;
this.age = age;
}
public StandardClass() {
// a constrction method with on param
}
}
4. 方法的重载(overload)
example:
package com.sugar.overload;
public class OverloadMethod {
public double add(double a,double b,double c,double d){
System.out.println("调用了4个参数的add方法");
r eturn a+b+c+d;
}
public double add(double a,double b,double c){
System.out.println("调用了3个参数的add方法");
return a+b+c;
}
public double add(double a,double b){
System.out.println("调用了2个参数的add方法");
return a+b;
}
}
重载了add方法,包含两个参数、三个参数、四个参数